Exemplo n.º 1
0
    def initialize_landcover_parameters(landcover_file, landcover_initial_fields_file, dst_dir, landuse_shp):
        """generate initial landcover_init_param parameters"""
        lc_data_items = read_data_items_from_txt(landcover_initial_fields_file)
        # print(lc_data_items)
        field_names = lc_data_items[0]
        lu_id = -1
        for i, v in enumerate(field_names):
            if StringClass.string_match(v, 'LANDUSE_ID'):
                lu_id = i
                break
        data_items = lc_data_items[1:]
        replace_dicts = dict()
        for item in data_items:
            for i, v in enumerate(item):
                if i != lu_id:
                    if field_names[i].upper() not in list(replace_dicts.keys()):
                        replace_dicts[field_names[i].upper()] = {float(item[lu_id]): float(v)}
                    else:
                        replace_dicts[field_names[i].upper()][float(item[lu_id])] = float(v)
        # print(replace_dicts)

        # Generate GTIFF
        landcover_init_csv = r'D:\SEIMS\data\zts\data_prepare\spatial\test\landcover_init_csv.csv'
        RasterUtilClass.landuse_cover_reclassify(landcover_file, landuse_shp, replace_dicts, landcover_init_csv)
        print (landcover_init_csv)
        # for item, v in list(replace_dicts.items()):
        #     filename = dst_dir + os.path.sep + item + '.tif'
        #     print(filename)
        #     RasterUtilClass.raster_reclassify(landcover_file, v, filename)
        return list(replace_dicts['LANDCOVER'].values())
Exemplo n.º 2
0
 def reclassify_landcover_parameters(landuse_file, landcover_file,
                                     landcover_initial_fields_file,
                                     landcover_lookup_file, attr_names,
                                     dst_dir, landuse_shp):
     """relassify landcover_init_param parameters"""
     land_cover_codes = LanduseUtilClass.initialize_landcover_parameters(
         landuse_file, landcover_initial_fields_file, dst_dir, landuse_shp)
     attr_map = LanduseUtilClass.read_crop_lookup_table(
         landcover_lookup_file)
     n = len(attr_names)
     replace_dicts = []
     replace_dicts_attrn = dict()
     dst_crop_tifs = []
     for i in range(n):
         cur_attr = attr_names[i]
         cur_dict = dict()
         dic = attr_map[cur_attr]
         for code in land_cover_codes:
             if MathClass.floatequal(code, DEFAULT_NODATA):
                 continue
             if code not in list(cur_dict.keys()):
                 cur_dict[code] = dic.get(code)
         replace_dicts_attrn[cur_attr] = cur_dict
         replace_dicts.append(cur_dict)
         dst_crop_tifs.append(dst_dir + os.path.sep + cur_attr + '.tif')
     # print(replace_dicts)
     # print(len(replace_dicts))
     # print(dst_crop_tifs)
     # print(len(dst_crop_tifs))
     # Generate GTIFF
     landcover_rec_csv = r'D:\SEIMS\data\zts\data_prepare\spatial\test\landcover_rec_csv.csv'
     RasterUtilClass.landuse_cover_reclassify(landcover_file, landuse_shp,
                                              replace_dicts_attrn,
                                              landcover_rec_csv)
     print(landcover_rec_csv)
Exemplo n.º 3
0
 def reclassify_landcover_parameters(landuse_file, landcover_file, landcover_initial_fields_file,
                                     landcover_lookup_file, attr_names, dst_dir, landuse_shp):
     """relassify landcover_init_param parameters"""
     land_cover_codes = LanduseUtilClass.initialize_landcover_parameters(
             landuse_file, landcover_initial_fields_file, dst_dir, landuse_shp)
     attr_map = LanduseUtilClass.read_crop_lookup_table(landcover_lookup_file)
     n = len(attr_names)
     replace_dicts = []
     replace_dicts_attrn = dict()
     dst_crop_tifs = []
     for i in range(n):
         cur_attr = attr_names[i]
         cur_dict = dict()
         dic = attr_map[cur_attr]
         for code in land_cover_codes:
             if MathClass.floatequal(code, DEFAULT_NODATA):
                 continue
             if code not in list(cur_dict.keys()):
                 cur_dict[code] = dic.get(code)
         replace_dicts_attrn[cur_attr] = cur_dict
         replace_dicts.append(cur_dict)
         dst_crop_tifs.append(dst_dir + os.path.sep + cur_attr + '.tif')
     # print(replace_dicts)
     # print(len(replace_dicts))
     # print(dst_crop_tifs)
     # print(len(dst_crop_tifs))
     # Generate GTIFF
     landcover_rec_csv = r'D:\SEIMS\data\zts\data_prepare\spatial\test\landcover_rec_csv.csv'
     RasterUtilClass.landuse_cover_reclassify(landcover_file, landuse_shp, replace_dicts_attrn, landcover_rec_csv)
     print (landcover_rec_csv)