diff --git a/sen2chain/geo_utils.py b/sen2chain/geo_utils.py index 7823eb47aaf868fcbe5fe4420a18bb64ab8495aa..eafe838f1faf322cbc447ca3083e5d465468cf65 100644 --- a/sen2chain/geo_utils.py +++ b/sen2chain/geo_utils.py @@ -160,25 +160,25 @@ def get_processed_indices_vect( #~ indices_index = set().union(ndvi_index, ndwigao_index, ndwimcf_index, mndwi_index) lib = Library() - indices_index = {t for c in (getattr(lib, toto) for toto in ['l2a', 'ndvi', 'ndwigao', 'ndwimcf', 'mndwi']) for t in c} - total_index = {t for c in (getattr(lib, toto) for toto in ['l1c', 'l2a', 'ndvi', 'ndwigao', 'ndwimcf', 'mndwi']) for t in c} + indices_index = {t for c in (getattr(lib, toto) for toto in ['l2a', 'ndvi', 'ndwigao', 'ndwimcf', 'mndwi', 'ndre', 'ireci']) for t in c} + total_index = {t for c in (getattr(lib, toto) for toto in ['l1c', 'l2a', 'ndvi', 'ndwigao', 'ndwimcf', 'mndwi', 'ndre', 'ireci']) for t in c} complement_index = total_index - indices_index tile_count = {} for key in total_index: #~ logger.info(key) - tile_count[key]={"lc1": 0, "l2a": 0, 'ndvi': 0, 'ndwigao': 0, 'ndwimcf': 0, 'mndwi': 0} + tile_count[key]={"lc1": 0, "l2a": 0, 'ndvi': 0, 'ndwigao': 0, 'ndwimcf': 0, 'mndwi': 0, 'ndre': 0, 'ireci': 0} tile = Tile(key) for p in ['l1c', 'l2a']: tile_count[key][p] = len(getattr(tile, p)) - for p in ['ndvi', 'ndwigao', 'ndwimcf', 'mndwi']: + for p in ['ndvi', 'ndwigao', 'ndwimcf', 'mndwi', 'ndre', 'ireci']: try: - tile_count[key][p] = len(getattr(tile, p).masks) + tile_count[key][p] = len(getattr(tile, p).masks.cm001) except: pass # pour supprimer les tuiles ayant tous les indices à 0 - indices_index_nonull = {k: v for k, v in tile_count.items() if sum(v[indice] for indice in [z for z in v.keys() if z in ['ndvi', 'ndwigao', 'ndwimcf', 'mndwi']])} + indices_index_nonull = {k: v for k, v in tile_count.items() if sum(v[indice] for indice in [z for z in v.keys() if z in ['ndvi', 'ndwigao', 'ndwimcf', 'mndwi', 'ndre', 'ireci']])} # Couche des indices query_str = 'or '.join(['"{}" = "{}"'.format("Name", idx) for idx in indices_index_nonull.keys()]) @@ -191,7 +191,10 @@ def get_processed_indices_vect( "NDVI", "NDVI_F", "NDVI_L", \ "NDWIGAO", "NDWIGAO_F", "NDWIGAO_L", \ "NDWIMCF", "NDWIMCF_F", "NDWIMCF_L", \ - "MNDWI", "MNDWI_F", "MNDWI_L"]: + "MNDWI", "MNDWI_F", "MNDWI_L", + "NDRE", "NDRE_F", "NDRE_L", + "IRECI", "IRECI_F", "IRECI_L", + ]: field_name = ogr.FieldDefn(name, ogr.OFTString) field_name.SetWidth(10) out_layer.CreateField(field_name) @@ -219,35 +222,52 @@ def get_processed_indices_vect( feat.SetField("NDVI", tile_count[tile_name]['ndvi']) try: - feat.SetField("NDVI_F", tile.ndvi.masks.first.date.strftime("%d/%m/%Y")) - feat.SetField("NDVI_L", tile.ndvi.masks.last.date.strftime("%d/%m/%Y")) + feat.SetField("NDVI_F", tile.ndvi.masks.cm001.first.date.strftime("%d/%m/%Y")) + feat.SetField("NDVI_L", tile.ndvi.masks.cm001.last.date.strftime("%d/%m/%Y")) except: feat.SetField("NDVI_F", 0) feat.SetField("NDVI_L", 0) feat.SetField("NDWIGAO", tile_count[tile_name]['ndwigao']) try: - feat.SetField("NDWIGAO_F", tile.ndwigao.masks.first.date.strftime("%d/%m/%Y")) - feat.SetField("NDWIGAO_L", tile.ndwigao.masks.last.date.strftime("%d/%m/%Y")) + feat.SetField("NDWIGAO_F", tile.ndwigao.masks.cm001.first.date.strftime("%d/%m/%Y")) + feat.SetField("NDWIGAO_L", tile.ndwigao.masks.cm001.last.date.strftime("%d/%m/%Y")) except: feat.SetField("NDWIGAO_F", 0) feat.SetField("NDWIGAO_L", 0) feat.SetField("NDWIMCF", tile_count[tile_name]['ndwimcf']) try: - feat.SetField("NDWIMCF_F", tile.ndwimcf.masks.first.date.strftime("%d/%m/%Y")) - feat.SetField("NDWIMCF_L", tile.ndwimcf.masks.last.date.strftime("%d/%m/%Y")) + feat.SetField("NDWIMCF_F", tile.ndwimcf.masks.cm001.first.date.strftime("%d/%m/%Y")) + feat.SetField("NDWIMCF_L", tile.ndwimcf.masks.cm001.last.date.strftime("%d/%m/%Y")) except: feat.SetField("NDWIMCF_F", 0) feat.SetField("NDWIMCF_L", 0) - + feat.SetField("MNDWI", tile_count[tile_name]['mndwi']) try: - feat.SetField("MNDWI_F", tile.mndwi.masks.first.date.strftime("%d/%m/%Y")) - feat.SetField("MNDWI_L", tile.mndwi.masks.last.date.strftime("%d/%m/%Y")) + feat.SetField("MNDWI_F", tile.mndwi.masks.cm001.first.date.strftime("%d/%m/%Y")) + feat.SetField("MNDWI_L", tile.mndwi.masks.cm001.last.date.strftime("%d/%m/%Y")) except: feat.SetField("MNDWI_F", 0) feat.SetField("MNDWI_L", 0) + + feat.SetField("NDRE", tile_count[tile_name]['ndre']) + try: + feat.SetField("NDRE_F", tile.ndre.masks.cm001.first.date.strftime("%d/%m/%Y")) + feat.SetField("NDRE_L", tile.ndre.masks.cm001.last.date.strftime("%d/%m/%Y")) + except: + feat.SetField("NDRE_F", 0) + feat.SetField("NDRE_L", 0) + + feat.SetField("IRECI", tile_count[tile_name]['ireci']) + try: + feat.SetField("IRECI_F", tile.ireci.masks.cm001.first.date.strftime("%d/%m/%Y")) + feat.SetField("IRECI_L", tile.ireci.masks.cm001.last.date.strftime("%d/%m/%Y")) + except: + feat.SetField("IRECI_F", 0) + feat.SetField("IRECI_L", 0) + out_layer.SetFeature(feat) fill_fields(out_layer) @@ -265,7 +285,10 @@ def get_processed_indices_vect( "NDVI", "NDVI_F", "NDVI_L", \ "NDWIGAO", "NDWIGAO_F", "NDWIGAO_L", \ "NDWIMCF", "NDWIMCF_F", "NDWIMCF_L", \ - "MNDWI", "MNDWI_F", "MNDWI_L"]: + "MNDWI", "MNDWI_F", "MNDWI_L", + "NDRE", "NDRE_F", "NDRE_L", + "IRECI", "IRECI_F", "IRECI_L", + ]: field_name = ogr.FieldDefn(name, ogr.OFTString) field_name.SetWidth(10) out_layer.CreateField(field_name) @@ -284,7 +307,9 @@ def get_processed_indices_vect( "NDVI", "NDVI_F", "NDVI_L", \ "NDWIGAO", "NDWIGAO_F", "NDWIGAO_L", \ "NDWIMCF", "NDWIMCF_F", "NDWIMCF_L", \ - "MNDWI", "MNDWI_F", "MNDWI_L"]: + "MNDWI", "MNDWI_F", "MNDWI_L", + "NDRE", "NDRE_F", "NDRE_L", + "IRECI", "IRECI_F", "IRECI_L"]: field_name = ogr.FieldDefn(name, ogr.OFTString) field_name.SetWidth(10) out_layer.CreateField(field_name)