openSEPPO¶
Open SEPPO Tools -- Supporting Geospatial and Remote Sensing Data Processing
openSEPPO is a growing set of open-source tools for processing and managing geospatial and remote sensing data, with good support for NASA/ISRO NISAR products. The tools are designed to work standalone (on-premise, your laptop, cloud instances, ...), and to integrate for scaling with the SEPPO software by Earth Big Data.
Contents
- Tools
- TL;DR -- GCOV in 4 Steps
- Command-Line Examples by Product Type
- GCOV -- Geocoded Backscatter (Covariance)
- GSLC -- Geocoded Single Look Complex Data
- RSLC -- Radar-coordinates SLC
- Visualizing COGs and VRTs in GIS
- Documentation
- Getting Started
- Examples
- CLI Reference
- Useful Links
Tools¶
| Command | Description |
|---|---|
seppo_nisar_rslc_convert |
Subset NISAR L-band RSLC HDF5 files directly from S3/HTTPS; output is compatible with isce3, GAMMA Remote Sensing, and SEPPO for interferometric processing; geographic bbox, pixel, and coordinate subsetting; quicklook generation |
seppo_nisar_gcov_convert |
Convert NISAR GCOV HDF5 to Cloud Optimized GeoTIFF (COG), BigTIFF, or HDF5 subset with optional sigma0 conversion, reprojection, downscaling, and VRT time-series stacking |
seppo_nisar_gcov_convert_S |
S-band variant of seppo_nisar_gcov_convert (Beta release) |
seppo_nisar_gslc_convert |
Convert NISAR GSLC HDF5 complex data to COG or HDF5 subset: power, amplitude, magnitude, wrapped phase, or raw complex SLC; HDF5 output preserves all metadata for isce3/GAMMA/SEPPO; supports subsetting, reprojection, downscaling, and VRT stacking |
seppo_nisar_coherence |
Compute pairwise interferometric coherence from co-registered NISAR GSLC complex SLC files with optional crop, downscale, and reprojection |
seppo_nisar_search |
Search NISAR product URLs via NASA Earthdata CMR |
seppo_earthaccess_credentials |
Manage NASA Earthdata S3 credentials and bearer token |
TL;DR -- GCOV in 4 Steps¶
Ideally run on an AWS EC2 instance in
us-west-2. Outsideus-west-2, add--httpsto the search command.
1. Install¶
mamba create -n openseppo -c conda-forge openseppo aria2 matplotlib
conda activate openseppo
2. Cache Earthdata credentials¶
seppo_earthaccess_credentials -t
3. Search GCOV data at a point and time range¶
seppo_nisar_search \
--product GCOV \
--point -155.27 19.42 \
--start_time_after 2026-01-01 \
--start_time_before 2026-04-01 \
--https \
--group \
-o search_results/
4. Inspect a GCOV file¶
seppo_nisar_gcov_convert -lg -i \
https://nisar.asf.earthdatacloud.nasa.gov/NISAR/NISAR_L2_GCOV_BETA_V1/NISAR_L2_PR_GCOV_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001/NISAR_L2_PR_GCOV_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001.h5
5a. Subset to amplitude COG (default gamma0)¶
seppo_nisar_gcov_convert \
-i search_results/NISAR_GCOV_072_D_079_*.txt \
-o output/gcov/ \
-amp \
-projwin -155.33 19.47 -155.20 19.37 \
-projwin_srs EPSG:4326 \
-v
5b. Subset to amplitude COG with sigma0 conversion¶
seppo_nisar_gcov_convert \
-i search_results/NISAR_GCOV_072_D_079_*.txt \
-o output/gcov_sigma0/ \
-amp -sigma0 \
-projwin -155.33 19.47 -155.20 19.37 \
-projwin_srs EPSG:4326 \
-v
See Installation for pip, local clone, and credential setup options.
Command-Line Examples by Product Type¶
All examples below use Hawaii Volcanoes National Park (Kilauea), Track 072 Descending Frame 079. This area has active lava flows, caldera structures, and tropical forest -- ideal for SAR. Results should complete in under 1 minute from a laptop.
GCOV -- Geocoded Backscatter (Covariance)¶
Search¶
seppo_nisar_search \
--product GCOV \
--bbox -156.1 19.3 -154.8 20.3 \
--start_time_after 2026-01-01 \
--start_time_before 2026-04-01 \
--https \
--limit 30 \
--group
Save Track 072 Frame 079 URLs for batch processing:
seppo_nisar_search \
--product GCOV \
--track 72 --frame 79 --direction D \
--start_time_after 2026-01-01 \
--start_time_before 2026-04-01 \
--https --group \
-o search_results/
Inspect¶
seppo_nisar_gcov_convert -lg -i \
https://nisar.asf.earthdatacloud.nasa.gov/NISAR/NISAR_L2_GCOV_BETA_V1/NISAR_L2_PR_GCOV_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001/NISAR_L2_PR_GCOV_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001.h5
Subset -- single date, gamma0 dB COG¶
seppo_nisar_gcov_convert \
-i https://nisar.asf.earthdatacloud.nasa.gov/NISAR/NISAR_L2_GCOV_BETA_V1/NISAR_L2_PR_GCOV_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001/NISAR_L2_PR_GCOV_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001.h5 \
-o output/gcov/ \
-dB \
-projwin -155.33 19.47 -155.20 19.37 \
-projwin_srs EPSG:4326 \
-v
Output: one COG per polarisation (HHHH, HVHV) in gamma0 dB. Open directly in QGIS or any GDAL-compatible viewer.
Subset -- single date, gamma0 AMP COG, add a dual-pol ratio band¶
seppo_nisar_gcov_convert \
-i https://nisar.asf.earthdatacloud.nasa.gov/NISAR/NISAR_L2_GCOV_BETA_V1/NISAR_L2_PR_GCOV_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001/NISAR_L2_PR_GCOV_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001.h5 \
-o output/gcov/ \
-amp -dpratio \
-projwin -155.33 19.47 -155.20 19.37 \
-projwin_srs EPSG:4326 \
-v
Output: amplitude COGs for HHHH, HVHV, plus an additional HHHH/HVHV ratio band. High ratio values indicate dominant surface scattering (bare lava), low values indicate volume scattering (forest canopy).
Subset -- amplitude COG time series¶
seppo_nisar_gcov_convert \
-i search_results/NISAR_GCOV_072_D_079_*.txt \
-o output/gcov/ \
-amp \
-projwin -155.33 19.47 -155.20 19.37 \
-projwin_srs EPSG:4326 \
-v
Generates per-date COG files and automatically builds VRT time-series stacks.
Subset -- sigma0 reprojected to WGS84¶
seppo_nisar_gcov_convert \
-i search_results/NISAR_GCOV_072_D_079_*.txt \
-o output/gcov_sigma0/ \
-amp -sigma0 \
-t_srs 4326 -tr 0.0002 0.0002 \
-projwin -155.33 19.47 -155.20 19.37 \
-projwin_srs EPSG:4326 \
-v
GSLC -- Geocoded Single Look Complex Data¶
Search¶
seppo_nisar_search \
--product GSLC \
--track 72 --frame 79 --direction D \
--start_time_after 2026-01-01 \
--start_time_before 2026-04-01 \
--https --group \
-o search_results/
Inspect¶
seppo_nisar_gslc_convert -lg -i \
https://nisar.asf.earthdatacloud.nasa.gov/NISAR/NISAR_L2_GSLC_BETA_V1/NISAR_L2_PR_GSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001/NISAR_L2_PR_GSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001.h5
Subset -- power COG¶
seppo_nisar_gslc_convert \
-i https://nisar.asf.earthdatacloud.nasa.gov/NISAR/NISAR_L2_GSLC_BETA_V1/NISAR_L2_PR_GSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001/NISAR_L2_PR_GSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001.h5 \
-o output/gslc/ \
-pwr \
-projwin -155.33 19.47 -155.20 19.37 \
-projwin_srs EPSG:4326 \
-v
Subset -- raw complex SLC for interferometry¶
seppo_nisar_gslc_convert \
-i https://nisar.asf.earthdatacloud.nasa.gov/NISAR/NISAR_L2_GSLC_BETA_V1/NISAR_L2_PR_GSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001/NISAR_L2_PR_GSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001.h5 \
-o output/gslc/ \
-cslc \
-projwin -155.33 19.47 -155.20 19.37 \
-projwin_srs EPSG:4326 \
-vars HH \
-v
Subset -- HDF5 (preserves complex data + all metadata)¶
seppo_nisar_gslc_convert \
-i https://nisar.asf.earthdatacloud.nasa.gov/NISAR/NISAR_L2_GSLC_BETA_V1/NISAR_L2_PR_GSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001/NISAR_L2_PR_GSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001.h5 \
-o output/gslc/ \
-of h5 \
-projwin -155.33 19.47 -155.20 19.37 \
-projwin_srs EPSG:4326 \
-v
RSLC -- Radar-coordinates SLC¶
Search¶
seppo_nisar_search \
--product RSLC \
--track 72 --frame 79 --direction D \
--start_time_after 2026-01-01 \
--start_time_before 2026-04-01 \
--https --group \
-o search_results/
Inspect¶
seppo_nisar_rslc_convert -lg -i \
https://nisar.asf.earthdatacloud.nasa.gov/NISAR/NISAR_L1_RSLC_BETA_V1/NISAR_L1_PR_RSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001/NISAR_L1_PR_RSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001.h5
Subset -- HH with quicklook¶
seppo_nisar_rslc_convert \
-i https://nisar.asf.earthdatacloud.nasa.gov/NISAR/NISAR_L1_RSLC_BETA_V1/NISAR_L1_PR_RSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001/NISAR_L1_PR_RSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001.h5 \
-o output/rslc/ \
-projwin -155.33 19.47 -155.20 19.37 \
-vars HH \
-ql -v
Output: 43 MB subsetted RSLC HDF5 + quicklook PNG (~32 seconds, no caching). Compatible with isce3, GAMMA Remote Sensing, and SEPPO.
Subset -- dual-pol HH+HV with quicklook¶
seppo_nisar_rslc_convert \
-i https://nisar.asf.earthdatacloud.nasa.gov/NISAR/NISAR_L1_RSLC_BETA_V1/NISAR_L1_PR_RSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001/NISAR_L1_PR_RSLC_009_072_D_079_4005_DHDH_A_20260102T045817_20260102T045836_X05010_N_P_J_001.h5 \
-o output/rslc/ \
-projwin -155.33 19.47 -155.20 19.37 \
-vars HH HV \
-ql -v
Output: 86 MB subsetted RSLC HDF5 + quicklook PNG with 4 panels (~59 seconds). The quicklook shows HH (co-pol) and HV (cross-pol) side by side, each with single-look and 5x5 multilooked views. HV highlights vegetation (volume scattering) while HH shows surface roughness.
Subset -- time series for InSAR¶
seppo_nisar_rslc_convert \
-i search_results/NISAR_RSLC_072_D_079_*.txt \
-o output/rslc_stack/ \
-projwin -155.33 19.47 -155.20 19.37 \
-vars HH \
-v
Each output is a self-contained RSLC HDF5 ready for pairwise interferometric processing.
Visualizing COGs and VRTs in GIS¶
openSEPPO outputs Cloud Optimized GeoTIFFs (COGs) and GDAL Virtual Rasters (VRTs) that open directly in any GDAL-compatible GIS application.
QGIS¶
Single file: Drag and drop a .tif or .vrt file from your file browser into the
QGIS map canvas. Or use Layer > Add Layer > Add Raster Layer and browse to the file.
Time-series VRT: The time-series VRT stacks contain one band per date. Open the VRT, then use the TimeseriesSAR QGIS Plugin to click anywhere on the map and plot the backscatter time series interactively.
S3 output (option 1 -- /vsis3/): Run seppo_nisar_gcov_convert -S -vsis3 to list
output paths as /vsis3/ URIs. Paste them into QGIS via Layer > Add Layer > Add Raster Layer
using the URI as the source.
S3 output (option 2 -- cloud protocol): In QGIS, go to Layer > Add Layer > Add Raster Layer,
set Source type to Protocol: HTTP(S), cloud, etc., select Type: AWS S3, enter the
Bucket or Container name (from the ---> Bucket: output line) and the Object Key
(from the VRT/TIF listing).
ArcGIS Pro¶
Single file: Use Map > Add Data > Data and browse to the .tif file. COGs are
natively supported in ArcGIS Pro 2.x+.
VRT files: ArcGIS Pro supports GDAL VRTs via the Raster Dataset option. Add the .vrt
file the same way as a GeoTIFF. For time-series VRTs, each band appears as a separate
layer in the raster properties.
S3 output: Configure an S3 cloud storage connection via Insert > Connections > Cloud Storage Connection, then browse to the COGs.
Command-line (gdal)¶
# Quick preview
gdalinfo output/gcov/NISAR_..._AMP.tif
# Convert to PNG for quick viewing
gdal_translate -of PNG -scale output/gcov/NISAR_..._AMP.tif preview.png
Documentation¶
Getting Started¶
- Installation
- GCOV and GSLC Workflows -- step-by-step GCOV and GSLC workflows with search, conversion, and time-series stacking
Examples¶
- Hawaii Volcanoes examples -- Comprehensive command-line examples for RSLC, GSLC, and GCOV search, inspect, and subset over Kilauea.
- Python API / Jupyter Integration -- Use openSEPPO tools as a Python API in scripts and Jupyter notebooks. Demonstrates programmatic data search, GCOV conversion, subsetting, and time-series building.
CLI Reference¶
| Tool | Reference |
|---|---|
seppo_nisar_rslc_convert |
CLI Reference |
seppo_nisar_gcov_convert |
CLI Reference -- Examples -- Dual-pol Ratio |
seppo_nisar_gslc_convert |
CLI Reference |
seppo_nisar_coherence |
CLI Reference |
seppo_nisar_search |
CLI Reference |
seppo_earthaccess_credentials |
CLI Reference |
Useful Links¶
| Resource | Description |
|---|---|
| ASF Vertex | Alaska Satellite Facility visual data search -- browse and download NISAR and other SAR products |
| NISAR Data User Guide | NISAR product format specifications, algorithm documents, and data access guides |
| NISAR Science | Official NASA NISAR mission site -- science overview, data products, and news |
| NASA Earthdata sign-up | Register for a free NASA Earthdata account (required for data access) |
| earthaccess | Python library for NASA Earthdata authentication and S3 access (used internally by openSEPPO) |
| TimeseriesSAR QGIS Plugin | Interactive time-series click/plot tool for SAR data in QGIS |
License¶
Apache License 2.0 -- (c) 2026 Earth Big Data LLC | earthbigdata.com