Skip to content

Commit

Permalink
better handling of null data for JRC data
Browse files Browse the repository at this point in the history
  • Loading branch information
alpha-beta-soup committed Nov 14, 2023
1 parent b6366e9 commit 53a74de
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 7 deletions.
3 changes: 1 addition & 2 deletions src/Snakefile
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,7 @@ include: "rules/comparison.smk"
get_nearest = lambda options, candidate: min(options, key=lambda x: abs(int(x)-int(candidate)))

rule all:
input:
expand(ARCHIVE, year=TARGET_YEARS)
input: ARCHIVE


source=lambda wc, input: pathlib.PurePosixPath(input.source).relative_to(OUTD),
Expand Down
12 changes: 7 additions & 5 deletions src/rules/jrc.smk
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ rule download_unzip_merge_jeodpp:
year='\d{4}'
params:
urls=lambda wildcards: JEODPP_URLS[get_nearest(JEODPP_URLS, wildcards.year)],
res=lambda wildcards: JEODPP_RESOLUTION[get_nearest(JEODPP_RESOLUTION, wildcards.year)],
res=lambda wildcards: JEODPP_RESOLUTION[get_nearest(JEODPP_RESOLUTION, wildcards.year)],
extent=config['extent'],
creation_options=" ".join(f'-co {k}={v}' for k, v in config['compression_co']['zstd_pred2'].items())
conda: '../envs/gdal.yml'
Expand Down Expand Up @@ -67,18 +67,20 @@ rule footprint_built:
res=lambda wildcards: JEODPP_RESOLUTION[get_nearest(JEODPP_RESOLUTION, wildcards.year)],
extent=config['extent'],
creation_options_a=" ".join(f'-co {k}={v}' for k, v in config['compression_co']['zstd_pred2'].items()),
creation_options_b=" ".join(f'--co {k}={v}' for k, v in config['compression_co']['zstd_pred2'].items())
creation_options_b=" ".join(f'--co {k}={v}' for k, v in config['compression_co']['zstd_pred2'].items()),
srcnodata=lambda wildcards: 255 if JEODPP_RESOLUTION[get_nearest(JEODPP_RESOLUTION, wildcards.year)] == 10 else 65535
shell: '''
mkdir -p $(dirname {output})
if [ {params.res} -ne 100 ]; then
gdalwarp -tr 100 100 -r sum -ot UInt16 \
-te {params.extent} -overwrite {params.creation_options_a} \
-multi -wo NUM_THREADS=ALL_CPUS \
-srcnodata {params.srcnodata} \
{input} {input}.100.tif
else
cp {input} {input}.100.tif
fi
gdal_calc.py --outfile={output} -A {input}.100.tif --calc="4*((A>0)&(A<=2000))+10*(A>2000)" --overwrite {params.creation_options_b}
gdal_edit.py -stats -a_srs EPSG:3851 {output}
rm {input}.100.tif
gdal_calc.py --outfile={output}.tmp.tif -A {input}.100.tif --calc="4*((A>0)&(A<=2000))+10*(A>2000)" --overwrite {params.creation_options_b} && rm {input}.100.tif
gdal_edit.py -stats -a_srs EPSG:3851 {output}.tmp.tif
gdalwarp -dstnodata 0 {output}.tmp.tif {output} && rm {output}.tmp.tif
'''

0 comments on commit 53a74de

Please sign in to comment.