A personal vault of independent geospatial, remote-sensing, satellite-imagery, and Google Earth Engine (GEE) scripts.
The repository is intentionally heterogeneous. Files are not components of one application and should not be expected to share a runtime, dependency set, or release cycle. Each script or notebook should remain understandable and usable on its own so it can be copied into the appropriate environment when needed.
GEE/— scripts for the Earth Engine Code Editor and Earth Engine-related notebooks.Apps/— a curated list of useful external geospatial applications.JNotebooks/— portable Jupyter notebooks for ArcGIS Pro, VS Code, and JupyterLab.tools/— repository-level validation utilities; these do not form part of the geospatial scripts themselves.
| File | Environment | Purpose |
|---|---|---|
GEE/AreaCalculator_Widget.js |
GEE Code Editor | Interactive drawing tool that reports polygon area in m², ha, and km². |
GEE/DW_water_retrieval.js |
GEE Code Editor | Dynamic World water/inundated-vegetation viewer and exporter, including batch and SWOT-date-window workflows. |
GEE/ExportTile_scheleton.js |
GEE Code Editor | Reusable scaffold for tile- or AOI-based Earth Engine asset exports. |
GEE/GEE_noncommercial_eecu_monitor.ipynb |
Google Colab | Cloud Monitoring notebook for reviewing noncommercial Earth Engine EECU consumption. |
GEE/Go2Point.js |
GEE Code Editor | Coordinate-entry widget that centers the map and displays a point. |
GEE/LanSenView.js |
GEE Code Editor | Point-of-interest Sentinel-2, Landsat, and Sentinel-1 imagery explorer. |
GEE/LandSenView_v2.js |
GEE Code Editor | Extended imagery explorer with additional visualization, inspector, water, hotspot, and export functionality. |
GEE/maxS1Year.js |
GEE Code Editor | Compact Sentinel-1 VV/VH annual maximum-composite example over Africa. |
GEE/MonthYear_IC_availability.js |
GEE Code Editor | Lists the years, months, and year-month combinations available in an ImageCollection. |
GEE/Query_HydroBasins.js |
GEE Code Editor | Interactive HydroBASINS level selector and attribute explorer. |
GEE/S1_Opera_query.js |
GEE Code Editor | Sentinel-1/OPERA monthly counts and temporal-resolution diagnostics for a supplied geometry. |
GEE/Wildfire_detection.js |
GEE Code Editor | Sentinel-2 burned-area and fire-severity workflow with configurable image selection, masks, statistics, and exports. |
Apps/List |
Web browser | Small, annotated catalog of useful external geospatial web applications. |
JNotebooks/LandSenView_geemap.ipynb |
ArcGIS Pro / VS Code / JupyterLab | Interactive geemap explorer for querying point- or polygon-based Sentinel-2, Landsat, and Sentinel-1 imagery and displaying the LandSenView band combinations. |
JNotebooks/Wildfire_detection_geemap.ipynb |
ArcGIS Pro / VS Code / JupyterLab | Sentinel-2 burned-area and fire-severity workflow with a geemap polygon AOI, consolidated settings, selective output catalogue, ArcGIS Scene transfer, statistics, and Drive export definitions. |
- Open the Google Earth Engine Code Editor.
- Create a script and paste in the contents of the selected
.jsfile. - Read the header and user-settings section before running it.
- Replace any project-specific asset IDs, export paths, dates, thresholds, or AOI definitions.
- Run the script and inspect the map, Console, and Tasks tab as applicable.
These files use the Code Editor's global ee, Map, ui, Export, and
print objects. They are valid JavaScript, but they are not Node.js modules.
Some scripts also expect a geometry drawn or imported in the Code Editor. For
example, GEE/S1_Opera_query.js expects a variable named geometry.
GEE/GEE_noncommercial_eecu_monitor.ipynb is designed for Google Colab. It
uses:
pandasplotlygoogle-colabgoogle-cloud-monitoringIPython
Open the notebook in Colab, set PROJECT_ID, authenticate with an account that
can view the project's Cloud Monitoring metrics, and then run the cells. Colab
provides several of the imported packages by default; install any missing
package in the notebook environment rather than treating it as a repository-wide
dependency.
Open JNotebooks/LandSenView_geemap.ipynb in ArcGIS Pro, VS Code, or JupyterLab
and run the cells from top to bottom. In ArcGIS Pro, install missing packages in
a clone of the default arcgispro-py3 environment. The notebook includes a
commented %pip command for other environments.
Earth Engine authenticates through its browser-based OAuth flow and stores the resulting credentials outside the notebook. Do not paste tokens, API keys, service-account JSON, or private keys into notebook cells. Before committing notebook changes, clear outputs so account details, local paths, map state, and query results are not saved.
For each selected UTC date, the notebook rebuilds the full filtered collection
and mosaics every intersecting granule or scene. When it is run from inside the
ArcGIS Pro application, an optional connection control can also add that Earth
Engine mosaic to a chosen ArcGIS map or 3D scene. External VS Code or Jupyter
kernels cannot alter a scene already open in ArcGIS Pro because they cannot use
the application's ArcGISProject("CURRENT") context.
Open JNotebooks/Wildfire_detection_geemap.ipynb, run the setup and import
cells, and review the consolidated user-options cell before authenticating
Earth Engine. The attached example polygon is available by default; draw a new
polygon or rectangle in the geemap widget to replace it.
Running the analysis creates an output catalogue without automatically adding
result layers. Select the pre/post imagery, indices, correction masks, burned
area, severity, or enabled threshold diagnostics that you want to inspect.
Selected entries can be previewed in geemap or transferred to an existing
ArcGIS Pro map/3D Scene from the dedicated transfer cell. The transfer does not
open a new Scene view. Statistics are a later optional step and can be skipped
without affecting visualization; raster exports remain available when
statistics are skipped. Google Drive exports are defined separately and remain
unsubmitted until explicitly started. A final optional validation section can
download the burned mask as a projected binary GeoTIFF, polygonize it locally,
save the polygon as a GeoPackage, and compare raster- and polygon-derived areas
with a fresh Earth Engine pixelArea() calculation. That optional section uses
geedim, rasterio, GeoPandas, Shapely, and pyproj; its commented setup
cell provides the installation command for environments that lack them. Its
output defaults to Desktop/wildfire_local_validation, and an editable folder
field immediately before the download accepts any writable absolute path.
Start work from an up-to-date branch:
git switch main
git pull --ff-only
git switch -c feature/short-descriptionAfter making a change, run the repository checks:
python tools/validate_repository.pyThe validator checks JavaScript syntax when Node.js is available, Python syntax,
notebook JSON structure, and whether files in GEE/ and Apps/ are represented
in this catalog. It does not execute Earth Engine operations; functional
validation still happens in the relevant runtime.
Then review and publish the branch:
git status
git diff
git add <files>
git commit -m "Describe the change"
git push -u origin feature/short-descriptionFor a very small personal change, committing directly to main is possible,
but a short-lived branch is safer for substantial script changes. See
CONTRIBUTING.md for the repository conventions.
- Treat every script or notebook as an independent tool.
- Keep user-editable configuration near the top of the file.
- Document the expected runtime, inputs, outputs, external assets, and important limitations in the file header.
- Prefer meaningful filenames over a deep package hierarchy.
- Use Git history for ordinary revisions. Keep a separate
_v2file only when both variants are intentionally useful. - Do not commit credentials, private keys, local datasets, generated exports, or private Earth Engine asset details.
- Validate scientific thresholds and classification results against known data before operational use.
- Several scripts use Earth Engine datasets or user/project assets. Access, dataset schemas, and asset availability must be checked in the target Earth Engine account.
GEE/ExportTile_scheleton.jscontains deliberate placeholder asset paths and requires a processing chain before use.GEE/S1_Opera_query.jsdepends on an imported/drawngeometry.- The larger UI scripts are self-contained but have substantial client/server interaction; a syntax check cannot detect Earth Engine runtime, quota, or UI lifecycle errors.
GEE/Wildfire_detection.jsexposes many methodological switches. Its thresholds and outputs require event-specific validation.
- The EECU monitor notebook is adapted from the Earth Engine Community guide and retains its source notices.
- Some individual scripts contain their own author or license statement.
- There is currently no repository-level
LICENSEfile. Do not assume that one file's license statement automatically applies to every file in this mixed collection.
Coauthor: begsud