Skip to content
Snippets Groups Projects

Resolve "Compress output files"

Merged Céline Raillé requested to merge 123-compression into develop
1 unresolved thread
16 files
+ 245
198
Compare changes
  • Side-by-side
  • Inline
Files
16
+ 14
17
@@ -37,10 +37,7 @@ from analysis.app_wrappers import band_math, get_app_output, super_impose, band_
from s2snow.utils import str_to_datetime, datetime_to_str
from s2snow.utils import write_list_to_file, read_list_from_file
from s2snow.snow_product_parser import load_snow_product
# Build gdal option to generate maks of 1 byte using otb extended filename
# syntaxx
GDAL_OPT = "?&gdal:co:NBITS=1&gdal:co:COMPRESS=DEFLATE"
from s2snow.lis_constant import GDAL_OPT, GDAL_OPT_1B
def parse_xml(filepath):
@@ -72,12 +69,12 @@ def merge_masks_at_same_date(snow_product_list, merged_snow_product, threshold=1
# and then the densification products
img_index = list(range(1, len(snow_product_list) + 1))
expression_merging = "".join(["(im" + str(i) + "b1<=" + str(threshold) + "?im" + str(i) + "b1:" for i in img_index])
expression_merging += "im" + str(img_index[-1]) + "b1"
expression_merging += f"im{img_index[-1]}b1"
expression_merging += "".join([")" for i in img_index])
img_list = [i.get_snow_mask() for i in snow_product_list]
bandMathApp = band_math(img_list,
merged_snow_product,
f"{merged_snow_product}?{GDAL_OPT}",
expression_merging,
ram,
otb.ImagePixelType_uint8)
@@ -179,7 +176,7 @@ class snow_annual_map():
if not os.path.exists(reprojected_mask):
super_impose_app = super_impose(s2_footprint_ref,
original_mask,
reprojected_mask,
f"{reprojected_mask}?{GDAL_OPT},
"nn",
int(self.label_no_data),
self.ram,
@@ -230,14 +227,14 @@ class snow_annual_map():
self.resulting_snow_mask_dict[key] = self.product_dict[key][0].get_snow_mask()
# convert the snow masks into binary snow masks
expression = "(im1b1==" + self.label_snow + ")?1:0"
self.binary_snowmask_list = self.convert_mask_list(expression, "snow", GDAL_OPT)
expression = f"(im1b1=={self.label_snow})?1:0"
self.binary_snowmask_list = self.convert_mask_list(expression, "snow", f"?{GDAL_OPT_1B}")
logging.debug("Binary snow mask list:")
logging.debug(self.binary_snowmask_list)
# convert the snow masks into binary cloud masks
expression = "im1b1==" + self.label_cloud + "?1:(im1b1==" + self.label_no_data + "?1:(im1b1==" + self.label_no_data_old + "?1:0))"
self.binary_cloudmask_list = self.convert_mask_list(expression, "cloud", GDAL_OPT)
expression = f"im1b1=={self.label_cloud}?1:(im1b1=={self.label_no_data}?1:(im1b1=={self.label_no_data_old}?1:0))"
self.binary_cloudmask_list = self.convert_mask_list(expression, "cloud", f"?{GDAL_OPT_1B}")
logging.debug("Binary cloud mask list:")
logging.debug(self.binary_cloudmask_list)
@@ -255,7 +252,7 @@ class snow_annual_map():
expression = "+".join(["im1b" + str(i) for i in band_index])
bandMathApp = band_math([self.multitemp_cloud_vrt],
self.cloud_occurence_img,
f"{self.cloud_occurence_img}?{GDAL_OPT}",
expression,
self.ram,
otb.ImagePixelType_uint16)
@@ -277,7 +274,7 @@ class snow_annual_map():
logging.info("Scale by 100 multitemp snow mask vrt")
multitemp_snow100 = op.join(self.path_tmp, "multitemp_snow100.tif")
bandMathXApp = band_mathX([self.multitemp_snow_vrt],
multitemp_snow100,
f"{multitemp_snow100}?{GDAL_OPT}",
"im1 mlt 100",
self.ram,
otb.ImagePixelType_uint8)
@@ -288,7 +285,7 @@ class snow_annual_map():
multitemp_snow100_gapfilled = op.join(self.path_tmp, "multitemp_snow100_gapfilled.tif")
app_gap_filling = gap_filling(multitemp_snow100,
self.multitemp_cloud_vrt,
multitemp_snow100_gapfilled + "?&gdal:co:COMPRESS=DEFLATE",
f"{multitemp_snow100_gapfilled}?{GDAL_OPT}",
self.input_dates_filename,
self.output_dates_filename,
self.ram,
@@ -306,7 +303,7 @@ class snow_annual_map():
# threshold to 0 or 1
logging.info("Round to binary series of snow occurrence")
bandMathXApp = band_mathX([img_in],
self.gapfilled_timeserie + GDAL_OPT,
f"{self.gapfilled_timeserie}?{GDAL_OPT_1B}",
"(im1 mlt 2) dv 100",
self.ram,
otb.ImagePixelType_uint8)
@@ -318,7 +315,7 @@ class snow_annual_map():
expression = "+".join(["im1b" + str(i) for i in band_index])
bandMathApp = band_math([self.gapfilled_timeserie],
self.annual_snow_map,
f"{self.annual_snow_map}?{GDAL_OPT}",
expression,
self.ram,
otb.ImagePixelType_uint16)
@@ -373,7 +370,7 @@ class snow_annual_map():
binary_mask_list = []
for mask_date in sorted(self.resulting_snow_mask_dict):
binary_mask = op.join(self.path_tmp,
mask_date + "_" + type_name + "_binary.tif")
f"{mask_date}_{type_name}_binary.tif")
binary_mask = self.extract_binary_mask(self.resulting_snow_mask_dict[mask_date],
binary_mask,
expression,
Loading