Skip to content

Reprocess Workflow

Reprocessing lets operators recalibrate existing raw RINEX
Receiver Independent Exchange Format — standard GNSS observation file format synced from GeoNet and calibrated by the processor.
with parameter overrides. Jobs route through Reprocess_Queue
SQS standard queue — buffers reprocessing job messages from the Reprocess API with lower concurrency than ingest.
with lower concurrency than ingest.

From the demo repo root:

Terminal window
export API_URL="$(terraform -chdir=terraform output -raw api_url)"
JOB=$(curl -s -X POST "${API_URL}/reprocess" \
-H "Content-Type: application/json" \
-d '{"station": "auck", "year": 2026, "doy": 179, "parameters": {"NAV_DAY_OFFSET": 2}}')
echo "$JOB"

Expected response:

{ "job_id": "...", "status": "queued", "trace_id": "..." }
Terminal window
JOB_ID=$(echo "$JOB" | python3 -c "import sys,json; print(json.load(sys.stdin)['job_id'])")
curl "${API_URL}/reprocess/${JOB_ID}"

Status progresses: queuedprocessingcompleted or failed.

Terminal window
aws sqs get-queue-attributes \
--queue-url "$(terraform -chdir=terraform output -raw reprocess_queue_url)" \
--attribute-names ApproximateNumberOfMessages

Jobs land on Reprocess_Queue, not Process_Queue
SQS standard queue — receives S3 ObjectCreated notifications for new raw RINEX files; triggers processor Lambda ingest path.
.

ParameterTypeDefaultDescription
NAV_DAY_OFFSETInteger1

Days before observation DOY
Day of year — three-digit value (001–366) used in RINEX paths and processed output keys.
for nav files

SAVE_PARQUETBooleantrue

Write Parquet
Columnar file format — primary processed output for efficient Query API range scans; JSON is a fallback when `pyarrow` is unavailable.
output

SAVE_CSVBooleantrueWrite CSV output
SAVE_JSONBooleantrueWrite JSON output
SAVE_STATIC_PLOTSBooleanfalseGenerate PNG plots
SAVE_INTERACTIVE_PLOTSBooleanfalseGenerate HTML plots

Any other parameter key returns HTTP 400.

See SQS Message Schemas and DynamoDB Jobs Table.

Reprocessing overwrites existing output keys deterministically — the same input always produces the same output path per format.