def run(self): biomass_raster_list = [ "C:/Users/rpsharp/Dropbox_stanford/Dropbox/forest_edge_carbon/af_biov2ct1.tif", "C:/Users/rpsharp/Dropbox_stanford/Dropbox/forest_edge_carbon/am_biov2ct1.tif", "C:/Users/rpsharp/Dropbox_stanford/Dropbox/forest_edge_carbon/as_biov2ct1.tif", ] nodata = raster_utils.get_nodata_from_uri(biomass_raster_list[0]) cell_size = raster_utils.get_cell_size_from_uri(biomass_raster_list[0]) def union_op(*biomass_array_list): output_array = biomass_array_list[0] for biomass_array in biomass_array_list[1:]: output_array = numpy.where( biomass_array != nodata, biomass_array, output_array) return output_array raster_utils.create_directories([os.path.dirname(self.output_uri)]) raster_utils.vectorize_datasets( biomass_raster_list, union_op, self.output_uri, gdal.GDT_Int16, nodata, cell_size, 'union', dataset_to_align_index=0, vectorize_op=False)
[lulc_uri,], mask_nonforest, mask_uri, gdal.GDT_Byte, mask_nodata, cell_size, 'intersection', dataset_to_align_index=0, dataset_to_bound_index=None, aoi_uri=None, assert_datasets_projected=True, process_pool=None, vectorize_op=False, datasets_are_pre_aligned=True) forest_edge_distance_uri = os.path.join(OUTPUT_DIR, "%s_forest_edge.tif" % prefix) raster_utils.distance_transform_edt(mask_uri, forest_edge_distance_uri) biomass_stats_uri = os.path.join(OUTPUT_DIR, "%s_biomass_stats.csv" % prefix) _aggregate_results(forest_edge_distance_uri, biomass_uri, ecoregion_dataset_uri, ecoregion_lookup, biomass_stats_uri) if __name__ == '__main__': #mask out forest LULCs raster_utils.create_directories([OUTPUT_DIR]) INPUT_QUEUE = multiprocessing.JoinableQueue() OUTPUT_QUEUE = multiprocessing.Queue() NUMBER_OF_PROCESSES = multiprocessing.cpu_count() for _ in xrange(NUMBER_OF_PROCESSES): multiprocessing.Process(target=worker, args=(INPUT_QUEUE, OUTPUT_QUEUE)).start() pantropic_regions = ['am', 'af', 'as'] for PREFIX in pantropic_regions: pass #INPUT_QUEUE.put((process_ecoregion, [PREFIX,])) #cProfile.runctx('process_ecoregion(PREFIX)', locals(), globals(), 'stats') #p = pstats.Stats('stats')