Skip to content

Latest commit

 

History

120 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

totumRevolutum

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.

Repository layout

  • 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.

Script catalog

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.

Using a GEE JavaScript file

  1. Open the Google Earth Engine Code Editor.
  2. Create a script and paste in the contents of the selected .js file.
  3. Read the header and user-settings section before running it.
  4. Replace any project-specific asset IDs, export paths, dates, thresholds, or AOI definitions.
  5. 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.

Using the EECU notebook

GEE/GEE_noncommercial_eecu_monitor.ipynb is designed for Google Colab. It uses:

  • pandas
  • plotly
  • google-colab
  • google-cloud-monitoring
  • IPython

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.

Using the geemap imagery notebook

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.

Using the burned-area geemap notebook

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.

Developing the vault

Start work from an up-to-date branch:

git switch main
git pull --ff-only
git switch -c feature/short-description

After making a change, run the repository checks:

python tools/validate_repository.py

The 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-description

For 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.

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 _v2 file 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.

Known portability considerations

  • 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.js contains deliberate placeholder asset paths and requires a processing chain before use.
  • GEE/S1_Opera_query.js depends on an imported/drawn geometry.
  • 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.js exposes many methodological switches. Its thresholds and outputs require event-specific validation.

Sources and licensing

  • 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 LICENSE file. Do not assume that one file's license statement automatically applies to every file in this mixed collection.

Coauthor: begsud

About

A practical collection of Google Earth Engine (GEE) scripts for interactive mapping, imagery exploration, export orchestration, and benchmarking workflows.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages