Files
GF3_L1A_To_L2_pipeline/README.md
T

100 lines
3.0 KiB
Markdown

# GF3 L1A to L2 Pipeline
This repository contains two GF-3 L1A to L2 processing paths:
- **SARscape Go wrapper**: Windows-oriented production wrapper around ENVI/IDL Runtime and SARscape. This is the recommended path when SARscape is available.
- **Python pipeline**: GDAL/Rasterio/NumPy implementation kept as a pure Python package and CLI.
The SARscape wrapper currently has the more complete operational workflow for GF-3 scene import, multilook/filter/geocode processing, batch directory discovery, saved defaults, and progress reporting.
## Repository Layout
```text
dist/windows/ Prebuilt Windows executable
docs/ Operational documentation
src/gf3_l1a2l2/ Python package
tests/ Python unit tests and small fixtures
tools/gf3_sarscape_wrapper/ Go wrapper source and embedded SAV asset
tools/gf3_sarscape_wrapper/idl/ IDL/SARscape source scripts
```
Large GF-3 archives, extracted scenes, SARscape outputs, and local runtime files are intentionally not tracked in Git.
## Recommended: SARscape Go Wrapper
Use the prebuilt executable:
```powershell
.\dist\windows\gf3wrapper.exe `
-input "D:\GF3\L1A_BATCH" `
-output "E:\GF3\L2_SARscape" `
-dem "D:\DEM\COPDEM_GLO30_China_4326_DEM" `
-pol "HH,HV"
```
Supported input forms:
- A single `*.tar.gz` GF-3 L1A package.
- A single `*.meta.xml` scene metadata file.
- A directory containing multiple `*.tar.gz` or `*.meta.xml` scenes.
The wrapper writes one output subdirectory per scene. On successful runs it saves defaults next to the executable in `gf3wrapper.json`, so double-click interactive mode can reuse the previous input/output/DEM/polarization settings.
More details: [docs/sarscape_go_wrapper.md](docs/sarscape_go_wrapper.md)
## Python Pipeline
Use an environment that already has working GDAL/OSGeo Python bindings. On Windows, Conda/Miniforge is usually the least fragile route.
```powershell
conda env create -f environment.yml
conda activate gf3-l1a2l2
pip install -e . --no-deps
```
Run:
```powershell
gf3-l1a2l2 run --input D:\GF3\L1A_BATCH --output E:\GF3\L2_Image --dem .\GMTED2010.jp2
```
Common options:
```powershell
gf3-l1a2l2 run `
--input D:\GF3\L1A_BATCH `
--output E:\GF3\L2_Image `
--dem .\GMTED2010.jp2 `
--workers 1 `
--x-res 0.0002 `
--y-res 0.0002 `
--dst-srs EPSG:4326
```
Legacy wrappers remain available:
```powershell
python gf3_L1A_To_L2.py run --input D:\GF3\L1A_BATCH --output E:\GF3\L2_Image --dem .\GMTED2010.jp2
python Decompression.py D:\GF3\L1A_BATCH
```
## Development Checks
Python:
```powershell
python -m pytest
```
Go wrapper:
```powershell
cd .\tools\gf3_sarscape_wrapper
$env:GOTELEMETRY = "off"
go build -o ..\..\dist\windows\gf3wrapper.exe .
```
## Data Policy
Do not commit production GF-3 archives or generated products. Keep large data on NAS/storage and document the path in run notes. Only small sanitized fixtures should be added under `tests/fixtures`.