These notes are associated with ESIIL Stars 2026 Cohort:
This repo https://github.com/byandell/esiil-stars is published via GitHub pages as byandell.github.io/esiil-stars by turning on GitHub Pages in the same manner as the assignment to Build your Environmental Data Science portfolio.
Where did I have that repo? You can use your portfolio to keep track of your work. This is helpful for you, and lets other people who visit your portfolio know what you have done. This can be useful later to help build your resume, or collection of your work. Just add links to your projects. For instance, here is the ESIIL Stars 2026 page and textbook:
I include profiles of ESIIL Stars students right here. Here are migration projects in progress from OLC students (along with their profiles):
And here are the OLC faculty:
The way to link a dynamic HTML file, such as a dynamic migration presentation,
is to save it in a portfolio repo that is rendered via GitHub pages,
such as using a [homepage].github.io.
HTML files (ending in .html) do not display well in GitHub,
but will display via GitHub Pages.
See
Embed Objects in GitHub Pages
for more detail.
This is with the Western Meadowlark (Tasiyagnunpa) from cu-esiil-edu/03-migration-MarshaJ24, a student fork of cu-esiil-edu/stars-03-migration-template. The dynamic HTML file is saved as tasiyagnunpa_migration.html.
Here we embed the dynamic HTML page in this page using
<iframe src="tasiyagnunpa_migration.html"
title="Tasiyagnunpa Migration"
width="100%" height="600px"></iframe>
Note the width and height, which can be tweeked.
The title option is useful if for some reason the page does not render.
Note:
This image will not display properly in Preview mode or in the GitHub repo,
but it will display on the published page
https://byandell.github.io/esiil-stars
once the edits are committed to GitHub.
With data over time, it is nice to have sliders. Including sliders depends on the type of dynamic plot package.
One example used above is a slider on an HVPLOT object. For this, see Marsha’s migration-mj notebook. Key code blocks:
# Join the occurrences with the plotting GeoDataFrame
occurrence_gdf = ecoregions_gdf.merge(
occurrence_df.reset_index(),
on='eco_code')
# Get the plot bounds so they don't change with the slider
xmin, ymin, xmax, ymax = occurrence_gdf.total_bounds
# Define the slider widget
slider = pn.widgets.DiscreteSlider(
name='month',
options={calendar.month_name[i]: i for i in range(1, 13)}
)
# Plot occurrence by ecoregion and month
migration_plot = (
occurrence_gdf
.hvplot(
c='norm_occurrences',
groupby='month',
# Use background tiles
geo=True, crs=ccrs.Mercator(), tiles='CartoLight',
title=f"{species_name} migration",
xlim=(xmin, xmax), ylim=(ymin, ymax),
frame_width=500,
colorbar=False,
widgets={'month': slider},
widget_location='bottom'
)
)
migration_plot.save(f'{plot_filename}.html', embed=True)
Another version is to use Google Earth Engine Map (geemap). For instance, see the example 72 time slider gui Here is the code:
import ee
import geemap
# geemap.update_package()
Map = geemap.Map(center=[37.75, -122.45], zoom=12)
S2 = (
ee.ImageCollection("COPERNICUS/S2_SR")
.filterBounds(ee.Geometry.Point([-122.45, 37.75]))
.filterMetadata("CLOUDY_PIXEL_PERCENTAGE", "less_than", 10)
)
vis_params = {"min": 0, "max": 4000, "bands": ["B8", "B4", "B3"]}
Map.addLayer(S2, {}, "Sentinel-2", False)
Map.add_time_slider(S2, vis_params)
Map
This is gleaned from Publish GitHub Pages and adapted for the a GitHub organization like the OLC Integrated Data Cube. See also notes on how to Collaborate with GitHub Organizations.
This is a list of some ESIIL Stars projects published with GitHub Pages.
docs/ Folder From Private RepoA repo for ESIIL Stars might be private in such an organization
but may have a public published set of pages
hosted from the docs/ folder.
Note:
To set up the GitHub Pages for a GitHub Organization repo
to use the docs/ folder, follow
The Least You Need to Know About GitHub Pages.
Once published, things in the docs/ folder will be public.
If the repo is private, it will remain private.
cu-esiil-edu OrgThe simple repo private-repo in the
ESIIL Education
GitHub Organization
is only visible to authorized members,
which are typically ESIIL faculty and staff.
However, the published page is visible to all.
For contrast, consider the public-repo in the same organization,
for with both the GitHub repo and the GitHub Pages profile are visible:
Here is another prototype using one of the ESIIL Stars teams.
(Note how cu-esiil-edu is replaced by olc-techsupport below
and in the repos.)
The simple repo private-repo in the
Oglala Lakota College GitHub Organization
OLC Integrated Data Cube
is only visible to authorized OLC members.
However, the published page is visible to all.
For contrast, consider the public-repo in the same organization,
for with both the GitHub repo and the GitHub Pages profile are visible: