def test_delete(self): GenericMetadata.writeManifestEntry(self.context, "key1", "value_one") manifest = GenericMetadata.readManifestEntries(self.context) self.assertTrue(manifest["key1"] == "value_one") GenericMetadata.deleteManifestEntry(self.context, "key1") manifest = GenericMetadata.readManifestEntries(self.context) self.assertTrue(not 'key1' in manifest) GenericMetadata.writeStudyAreaEntry(self.context, "key1", "value_one") studyArea = GenericMetadata.readStudyAreaEntries(self.context) self.assertTrue(studyArea["key1"] == "value_one") GenericMetadata.deleteStudyAreaEntry(self.context, 'key1') studyArea = GenericMetadata.readStudyAreaEntries(self.context) self.assertTrue(not 'key1' in studyArea) GenericMetadata.writeClimatePointEntry(self.context, "key1", "value_one") climatePoint = GenericMetadata.readClimatePointEntries(self.context) self.assertTrue(climatePoint["key1"] == "value_one") GenericMetadata.deleteClimatePointEntry(self.context, 'key1') climatePoint = GenericMetadata.readClimatePointEntries(self.context) self.assertTrue(not 'key1' in climatePoint) GenericMetadata.writeClimateGridEntry(self.context, "key1", "value_one") climateGrid = GenericMetadata.readClimateGridEntries(self.context) self.assertTrue(climateGrid["key1"] == "value_one") GenericMetadata.deleteClimateGridEntry(self.context, 'key1') climateGrid = GenericMetadata.readClimateGridEntries(self.context) self.assertTrue(not 'key1' in climateGrid) # Delete and empty entry GenericMetadata.deleteClimateGridEntry(self.context, "not_in_store")
def test_empty_read(self): manifest = GenericMetadata.readManifestEntries(self.context) self.assertTrue(len(manifest) == 0) studyArea = GenericMetadata.readStudyAreaEntries(self.context) self.assertTrue(len(studyArea) == 0) climatePoint = GenericMetadata.readClimatePointEntries(self.context) self.assertTrue(len(climatePoint) == 0) climateGrid = GenericMetadata.readClimateGridEntries(self.context) self.assertTrue(len(climateGrid) == 0)
def test_delete(self): GenericMetadata.writeManifestEntry(self.context, "key1", "value_one") manifest = GenericMetadata.readManifestEntries(self.context) self.assertTrue(manifest["key1"] == "value_one") GenericMetadata.deleteManifestEntry(self.context, "key1") manifest = GenericMetadata.readManifestEntries(self.context) self.assertTrue(not 'key1' in manifest) GenericMetadata.writeStudyAreaEntry(self.context, "key1", "value_one") studyArea = GenericMetadata.readStudyAreaEntries(self.context) self.assertTrue(studyArea["key1"] == "value_one") GenericMetadata.deleteStudyAreaEntry(self.context, 'key1') studyArea = GenericMetadata.readStudyAreaEntries(self.context) self.assertTrue(not 'key1' in studyArea) GenericMetadata.writeClimatePointEntry(self.context, "key1", "value_one") climatePoint = GenericMetadata.readClimatePointEntries(self.context) self.assertTrue(climatePoint["key1"] == "value_one") GenericMetadata.deleteClimatePointEntry(self.context, 'key1') climatePoint = GenericMetadata.readClimatePointEntries(self.context) self.assertTrue(not 'key1' in climatePoint) GenericMetadata.writeClimateGridEntry(self.context, "key1", "value_one") climateGrid = GenericMetadata.readClimateGridEntries(self.context) self.assertTrue(climateGrid["key1"] == "value_one") GenericMetadata.deleteClimateGridEntry(self.context, 'key1') climateGrid = GenericMetadata.readClimateGridEntries(self.context) self.assertTrue(not 'key1' in climateGrid) # Delete and empty entry GenericMetadata.deleteClimateGridEntry(self.context, "not_in_store") GenericMetadata.writeHydroShareEntry(self.context, "resource_id", "fae3688aa1354fb2a558380669229a66") hydroshare = GenericMetadata.readHydroShareEntries(self.context) self.assertTrue(hydroshare["resource_id"] == "fae3688aa1354fb2a558380669229a66") GenericMetadata.deleteHydroShareEntry(self.context, "resource_id") hydroshare = GenericMetadata.readHydroShareEntries(self.context) self.assertTrue(not 'resource_id' in hydroshare)
def checkMetadata(self): """ Check to make sure the project directory has the necessary metadata to run this command. """ super(USGSWCSNLCD, self).checkMetadata() # Check for necessary information in metadata self.manifest = GenericMetadata.readManifestEntries(self.context) if not 'dem' in self.manifest: raise MetadataException("Metadata in project directory %s does not contain a DEM" % (self.context.projectDir,)) if not 'dem_srs' in self.studyArea: raise MetadataException("Metadata in project directory %s does not contain a spatial reference system" % (self.context.projectDir,)) if not 'dem_res_x' in self.studyArea: raise MetadataException("Metadata in project directory %s does not contain a raster X resolution" % (self.context.projectDir,)) if not 'dem_res_y' in self.studyArea: raise MetadataException("Metadata in project directory %s does not contain a raster Y resolution" % (self.context.projectDir,))
def test_write_and_read(self): GenericMetadata.writeManifestEntry(self.context, "key1", "value_one") GenericMetadata.writeManifestEntry(self.context, "key2", "value_two") manifest = GenericMetadata.readManifestEntries(self.context) self.assertTrue(manifest["key1"] == "value_one") GenericMetadata.writeStudyAreaEntry(self.context, "key1", "value_one") GenericMetadata.writeStudyAreaEntry(self.context, "key2", "value_two") studyArea = GenericMetadata.readStudyAreaEntries(self.context) self.assertTrue(studyArea["key1"] == "value_one") GenericMetadata.writeClimatePointEntry(self.context, "key1", "value_one") GenericMetadata.writeClimatePointEntry(self.context, "key2", "value_two") climatePoint = GenericMetadata.readClimatePointEntries(self.context) self.assertTrue(climatePoint["key1"] == "value_one") GenericMetadata.writeClimateGridEntry(self.context, "key1", "value_one") GenericMetadata.writeClimateGridEntry(self.context, "key2", "value_two") climateGrid = GenericMetadata.readClimateGridEntries(self.context) self.assertTrue(climateGrid["key1"] == "value_one")
def checkMetadata(self): """ Check to make sure the project directory has the necessary metadata to run this command. """ super(USGSWCSNLCD, self).checkMetadata() # Check for necessary information in metadata self.manifest = GenericMetadata.readManifestEntries(self.context) if not 'dem' in self.manifest: raise MetadataException( "Metadata in project directory %s does not contain a DEM" % (self.context.projectDir, )) if not 'dem_srs' in self.studyArea: raise MetadataException( "Metadata in project directory %s does not contain a spatial reference system" % (self.context.projectDir, )) if not 'dem_res_x' in self.studyArea: raise MetadataException( "Metadata in project directory %s does not contain a raster X resolution" % (self.context.projectDir, )) if not 'dem_res_y' in self.studyArea: raise MetadataException( "Metadata in project directory %s does not contain a raster Y resolution" % (self.context.projectDir, ))
def test_write_and_read(self): GenericMetadata.writeManifestEntry(self.context, "key1", "value_one") GenericMetadata.writeManifestEntry(self.context, "key2", "value_two") manifest = GenericMetadata.readManifestEntries(self.context) self.assertTrue(manifest["key1"] == "value_one") GenericMetadata.writeStudyAreaEntry(self.context, "key1", "value_one") GenericMetadata.writeStudyAreaEntry(self.context, "key2", "value_two") studyArea = GenericMetadata.readStudyAreaEntries(self.context) self.assertTrue(studyArea["key1"] == "value_one") GenericMetadata.writeClimatePointEntry(self.context, "key1", "value_one") GenericMetadata.writeClimatePointEntry(self.context, "key2", "value_two") climatePoint = GenericMetadata.readClimatePointEntries(self.context) self.assertTrue(climatePoint["key1"] == "value_one") GenericMetadata.writeClimateGridEntry(self.context, "key1", "value_one") GenericMetadata.writeClimateGridEntry(self.context, "key2", "value_two") climateGrid = GenericMetadata.readClimateGridEntries(self.context) self.assertTrue(climateGrid["key1"] == "value_one") GenericMetadata.writeHydroShareEntry(self.context, "resource_id", "fae3688aa1354fb2a558380669229a66") hydroshare = GenericMetadata.readHydroShareEntries(self.context) self.assertTrue(hydroshare["resource_id"] == "fae3688aa1354fb2a558380669229a66")
# Determine whether we need to resample resample = False rasterMetadata = getSpatialReferenceForRaster(inRasterPath) rasterSrs = rasterMetadata[5] rasterX = float(rasterMetadata[0]) rasterY = float(rasterMetadata[1]) if (rasterSrs != srs): resample = True elif (not args.noresample) and ((rasterX != demResolutionX) or (rasterY != demResolutionY)): resample = True if args.clip: processingNotes = "Clipping %s raster %s to DEM extent" % (args.type, inRasterPath) manifest = GenericMetadata.readManifestEntries(context) demFilename = manifest['dem'] demFilepath = os.path.join(context.projectDir, demFilename) demFilepath = os.path.abspath(demFilepath) extractTileFromRasterByRasterExtent(context.config, context.projectDir, demFilepath, inRasterPath, rasterFilepath, args.resampleMethod) else: if resample: # Reproject raster, copying into project directory in the process processingNotes = "Resampling %s raster from %s to %s, spatial resolution (%.2f, %.2f) to (%.2f, %.2f)" % \ (args.type, rasterSrs, srs, rasterX, rasterX, demResolutionX, demResolutionY) sys.stdout.write(textwrap.fill("%s..." % (processingNotes, ))) resampleRaster(context.config, context.projectDir, inRasterPath, rasterFilepath, \ s_srs=None, t_srs=srs, \
help='Overwrite existing SSURGO features shapefile in project directory. If not specified, program will halt if a dataset already exists.') args = parser.parse_args() cmdline = GenericMetadata.getCommandLine() configFile = None if args.configfile: configFile = args.configfile context = Context(args.projectDir, configFile) if not context.config.has_option('GDAL/OGR', 'PATH_OF_OGR2OGR'): sys.exit("Config file %s does not define option %s in section %s" & \ (args.configfile, 'GDAL/OGR', 'PATH_OF_OGR2OGR')) # Check if features shapefile already exists manifest = GenericMetadata.readManifestEntries(context) if 'soil_features' in manifest: if args.overwrite: sys.stdout.write('Deleting existing SSURGO features shapefile\n') sys.stdout.flush() shpFilepath = os.path.join( context.projectDir, manifest['soil_features'] ) deleteShapefile(shpFilepath) else: sys.exit( textwrap.fill('SSURGO features already exist in project directory. Use --overwrite option to overwrite.') ) # Get study area parameters studyArea = GenericMetadata.readStudyAreaEntries(context) bbox = bboxFromString(studyArea['bbox_wgs84']) outputrasterresolutionX = studyArea['dem_res_x'] outputrasterresolutionY = studyArea['dem_res_y']