-
Notifications
You must be signed in to change notification settings - Fork 11
Instruction file contents
The processor
module classes accept the contents of a JSON instruction file as a dictionary. This page briefly details the expected structure and supported keywords for each stage of the GeoFabrics framework before providing links to different example instruction files. A full example instruction file is shown below.
The instruction file has the following basic structure, where the output
, data_paths
, general
and datasets
keywords are the only top-level keywords expected by the RawLidarDemGenerator
, HydrologicDemGenerator
and RoughnessLengthGenerator
classes. While the RiverBathymetryGenerator
, and WaterwayBedElevationEstimator
classes each expect the additional keyword rivers
, and drains
respectively.
{
"output": {
"crs": { "horizontal": 2193, "vertical": 7839 },
"grid_params": { "resolution": 10 },
},
"data_paths": { "cache_path": "path/to/cache", "subfolder": "run_name", "result_dem": results_dem.nc",
"extents": "catchment.geojson" },
"datasets": { "lidar": { "open_topography": "True" },
"vector": {"linz": { "land": { "layers": [51153], "type": "GEOMETRY" }, "key": "YOUR_KEY_HERE" },
"raster": {"linz": {"coarse_dems": {"layers": [51768]}, "key": "YOUR_KEY_HERE" )
}
"general": { ... }
}
The runner.py
entry point module decides which processor classes to run based on the top-level keyword(s) of an instruction file. The keyword options are default
, rivers
, drains
, dem
and roughness
. The default
values are used to populate any missing entries in the other keywords. The other keywords respectively call through to the RiverBathymetryGenerator
, DrainBathymetryGenerator
, LidarDemGenerator
and HydrologicDemGenerator
, and RoughnessLengthGenerator
. If multiple keywords are included in the instruction file, each related processor class is called in the order of rivers
, drains
, dem
and roughness
.
Below is an example of a single instruction file which will trigger the RiverBathymetryGenerator
, DrainBathymetryGenerator
and LidarDemGenerator
classes to run in turn and produce a DEM with ocean, river and drain bathymetry included.
{
"measured": {
"output": { ... },
"data_paths": { ... },
"general": { ... },
},
"measured": {
"output": { ... },
"data_paths": { ... },
"measured": { ... },
},
"rivers": {
"output": { ... },
"data_paths": { ... },
"datasets": { ... },
"general": { ... },
"rivers": { ... }
},
"waterways": {
"output": { ... },
"data_paths": { ... },
"datasets": { ... },
"general": { ... },
"drains": { ... }
},
"dem": {
"output": { ... },
"data_paths": { ... },
"datasets": { ... },
"general": { ... }
},
"roughness": {
"output": { ... },
"data_paths": { ... },
"datasets": { ... },
"general": { ... }
}
}
The options for each section are detailed in different sub-pages:
- General, Output and Processing Instructions
- Data Paths and APIs Instructions
- Waterways Instructions
- Rivers Instructions
- Measured Instructions
The benchmarking
section is required if running benchmarking.py
. It defines the numbers_of_cores
and chunk_sizes
to iterate over when producing a plot of execution times for various processing settings.
-
numbers_of_cores
[Requiredlist
] - A list of integers that a cycled through for eachnumber_of_cores
and defines the chunk size applied. This number should not exceed the number of cores on the machine or allocated in a distributed system. -
chunk_sizes
[Requiredlist
] - A list of integers that a cycled through for eachnumber_of_cores
and defines the chunk size applied. -
title
[Requiredstr
] - Defines the title of the plot of execution time against processing settings. -
delete_dems
[Requiredbool
] - IfTrue
the DEMs generated in each run are deleted.
Check out unit test instruction
files for each test for examples using the instruction keywords. A table detailing the rough contents of each test can be found at Table of all tests. Some select tests are pulled out below.