113 lines
3.4 KiB
Markdown
113 lines
3.4 KiB
Markdown
# SARscape Go Wrapper
|
|
|
|
`gf3wrapper.exe` is a Windows command-line wrapper for the SARscape/IDL GF-3 processing workflow. It embeds `gf3_sarscape_cli.sav`, starts `idlrt.exe`, and passes scene metadata, output directory, DEM, and polarization arguments to SARscape.
|
|
|
|
This path is intended for operational runs where ENVI/IDL Runtime and SARscape are installed and licensed.
|
|
|
|
## Requirements
|
|
|
|
- Windows host.
|
|
- ENVI/IDL Runtime, default path:
|
|
`C:\Program Files\Harris\ENVI56\IDL88\bin\bin.x86_64\idlrt.exe`
|
|
- SARscape available to the IDL Runtime environment.
|
|
- DEM file, for example:
|
|
`D:\DEM\COPDEM_GLO30_China_4326_DEM`
|
|
- GF-3 L1A input as `*.tar.gz`, `*.meta.xml`, or a directory containing multiple scenes.
|
|
|
|
The IDL Runtime path can be overridden with `-idlrt` or the `IDLRT_PATH` environment variable.
|
|
|
|
## Quick Start
|
|
|
|
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"
|
|
```
|
|
|
|
Double-click mode is also supported. When launched without arguments, the wrapper prompts for input, output, DEM, polarizations, and IDL Runtime path. Press Enter to reuse saved defaults.
|
|
|
|
## Inputs
|
|
|
|
The wrapper supports:
|
|
|
|
- A single GF-3 archive: `GF3_....tar.gz`
|
|
- A single extracted scene metadata file: `GF3_....meta.xml`
|
|
- A directory containing many archives and/or extracted scenes
|
|
|
|
Directory mode recursively scans for `*.tar.gz`, `*.tgz`, and `*.meta.xml`. If both archive and metadata exist for the same scene name, the archive is preferred. Internal `.gf3_extract` folders are skipped.
|
|
|
|
## Outputs
|
|
|
|
Each scene is processed into its own output directory:
|
|
|
|
```text
|
|
E:\GF3\L2_SARscape\
|
|
GF3_SCENE_NAME\
|
|
.gf3_extract\ Extracted archive, when input was .tar.gz
|
|
*_slc.sml
|
|
*_ml.sml
|
|
*_filt.sml
|
|
*_geo.sml
|
|
```
|
|
|
|
The embedded SAV is materialized under:
|
|
|
|
```text
|
|
<output>\.gf3_runtime\gf3_sarscape_cli.sav
|
|
```
|
|
|
|
## Saved Defaults
|
|
|
|
After a successful run, the wrapper writes `gf3wrapper.json` next to the executable:
|
|
|
|
```json
|
|
{
|
|
"idlrt_path": "C:\\Program Files\\Harris\\ENVI56\\IDL88\\bin\\bin.x86_64\\idlrt.exe",
|
|
"dem_file": "D:\\DEM\\COPDEM_GLO30_China_4326_DEM",
|
|
"polarizations": "HH,HV",
|
|
"last_input": "D:\\GF3\\L1A_BATCH",
|
|
"last_output": "E:\\GF3\\L2_SARscape",
|
|
"keep_extracted": true
|
|
}
|
|
```
|
|
|
|
Command-line flags override saved defaults. If `-input`, `-output`, `-dem`, or `-pol` are omitted, saved values are reused when available.
|
|
|
|
## Build
|
|
|
|
From the repository root:
|
|
|
|
```powershell
|
|
cd .\tools\gf3_sarscape_wrapper
|
|
$env:GOTELEMETRY = "off"
|
|
go build -o ..\..\dist\windows\gf3wrapper.exe .
|
|
```
|
|
|
|
If Go cannot write to the default user cache directory, set local cache paths:
|
|
|
|
```powershell
|
|
$env:GOCACHE = "C:\Temp\go-build-cache"
|
|
$env:APPDATA = "C:\Temp\go-appdata"
|
|
```
|
|
|
|
## Source Files
|
|
|
|
```text
|
|
tools/gf3_sarscape_wrapper/main.go
|
|
tools/gf3_sarscape_wrapper/assets/gf3_sarscape_cli.sav
|
|
tools/gf3_sarscape_wrapper/idl/gf3_sarscape_cli.pro
|
|
tools/gf3_sarscape_wrapper/idl/gf3_sarscape_pipeline.pro
|
|
```
|
|
|
|
`assets/gf3_sarscape_cli.sav` is embedded into the Go executable at build time.
|
|
|
|
## Notes
|
|
|
|
- Keep production archives and generated products outside Git.
|
|
- Keep only small sanitized fixtures in `tests/fixtures`.
|
|
- The prebuilt executable in `dist/windows` is a convenience artifact for Windows users. Rebuild it after changing `main.go` or the embedded `.sav`.
|