Vector to Raster Interpolation Routines
v2r contains two algorithms with an associated testing suite.
- Inverse Distance Weighting (IDW)
- Cleaner
The interpolation becomes more drastic as p increases.
Read from txt file
./v2r idw -f [FILEPATH]
Read from geopackage
./v2r idw -f [FILEPATH] -g --layer [LAYERNAME] --field [FIELDNAME]
Default usage for one exponent
./v2r idw -f [FILEPATH] -g --layer [LAYERNAME] --field [FIELDNAME] --es [EXPONENT]
Usage for range of exponents
./v2r idw -f [FILEPATH] -g --layer [LAYERNAME] --field [FIELDNAME] --es [START] --ee [END] --ei [INCREMENT]
Flags
Shorthand | Full Name | Type | Default | Description |
---|---|---|---|---|
-c | --concurrent | bool | false | Run concurrently? |
--cx | int | 200 | Set chunk size in x-direction | |
--cy | int | 200 | Set chunk size in y-direction | |
--ee | float | Set end for exponent (exclusive) | ||
--ei | float | 1.5 | Set exponential increment for calculations between start and end | |
--epsg | int | 2284 | Set EPSG | |
--es | float | 0.5 | Set start for exponent (inclusive) | |
--excel | bool | false | Perform an additional write to excel spreadsheet? | |
--field | string | Set name of field in geopackage file | ||
-f | --file | string | required | File to run |
-g | --gpkg | bool | false | Read from gpkg (true) or txt file (false)? |
--layer | string | Set name of layer in geopackage file | ||
--outPath | string | data/idw | Set outfile directory | |
--sx | float | 100.0 | Set step size in x-direction | |
--sy | float | 100.0 | Set step size in y-direction |
Notes
- txt file input requires special formatting (example idw_in.txt)
- cx, cy only used if --concurrent=true
- invalid chunk sizes are converted to 1/4 of respective direction (~16 subprocesses)
- epsg only used if --gpkg=false
- field, layer required if --gpkg=true
- not recommended to run ascii or excel prints for large datasets
This program cleans islands (dry spots) and voids (wet spots) that do not meet the tolerance thresholds.
Usage
./v2r clean -f [FILEPATH]
Flags
Shorthand | Full Name | Type | Default | Description |
---|---|---|---|---|
-a | --adjacent | int | 8 | Set adjacency type to include ordinal directions [4 | 8] |
-c | --concurrent | bool | false | Run concurrently? |
--cx | int | 2560 | Set chunk size in x-direction | |
--cy | int | 2560 | Set chunk size in y-direction | |
-f | --file | string | required | File to run |
--ti | float | 40,000.0 | Set tolerance level for islands (sq. footage) | |
--tv | float | 22,500.0 | Set tolerance level for voids (sq. footage) |
Notes
- monitor memory usage (process can use up to 80% of free memory)
- cx, cy only used if --concurrent=true
- cx, cy number of columns, rows to partition file into for subprocess calculations
- invalid chunk sizes are converted to 1/4 of respective direction (~16 subprocesses)
Usage
go test ./...
Run Specific Test
go test ./features/idw
Test Locations
- features/idw
- subtest name: "{ Serial | Conc }_step{ 1-1 | 2-2 }"
- features/cleaner
- subtest name: "{ Serial | Conc }_T{ 4 | 9 }_A{ 4 | 8 }"
- "T" is for tolerance island threshold
- "A" is for adjacency type
- tools/processing
- subtest name: "{ data | proj | xInfo | yInfo }"
- tests geopackage reader
Notes
- outputs ascii files to compare against correct outputs
By default, logs are sent to Stdout at the INFO level.
Flags
Shorthand | Full Name | Type | Default | Description |
---|---|---|---|---|
-d | --debug | bool | false | Set logging level to DEBUG |
-e | --error | bool | false | Set logging level to ERROR |
-l | --log | bool | false | Log outputs to separate file |
Notes
- output logs written to logs/
- sample log filename: 2022-24-06_22:06:25.txt
- if -d or -e are not passed, level=INFO used