Python osgeo.osr.SpatialReference() Examples
The following are 30
code examples of osgeo.osr.SpatialReference().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
osgeo.osr
, or try the search function
.
Example #1
Source File: LSDMappingTools.py From LSDMappingTools with MIT License | 7 votes |
def GetGeoInfo(FileName): if exists(FileName) is False: raise Exception('[Errno 2] No such file or directory: \'' + FileName + '\'') SourceDS = gdal.Open(FileName, gdal.GA_ReadOnly) if SourceDS == None: raise Exception("Unable to read the data file") NDV = SourceDS.GetRasterBand(1).GetNoDataValue() xsize = SourceDS.RasterXSize ysize = SourceDS.RasterYSize GeoT = SourceDS.GetGeoTransform() Projection = osr.SpatialReference() Projection.ImportFromWkt(SourceDS.GetProjectionRef()) DataType = SourceDS.GetRasterBand(1).DataType DataType = gdal.GetDataTypeName(DataType) return NDV, xsize, ysize, GeoT, Projection, DataType #============================================================================== #============================================================================== # Function to read the original file's projection:
Example #2
Source File: raster_manipulation.py From pyeo with GNU General Public License v3.0 | 7 votes |
def clip_raster_to_intersection(raster_to_clip_path, extent_raster_path, out_raster_path, is_landsat=False): """ Clips one raster to the extent proivded by the other raster, and saves the result at out_raster_path. Assumes both raster_to_clip and extent_raster are in the same projection. Parameters ---------- raster_to_clip_path The location of the raster to be clipped. extent_raster_path The location of the raster that will provide the extent to clip to out_raster_path A location for the finished raster """ with TemporaryDirectory() as td: temp_aoi_path = os.path.join(td, "temp_clip.shp") get_extent_as_shp(extent_raster_path, temp_aoi_path) ext_ras = gdal.Open(extent_raster_path) proj = osr.SpatialReference(wkt=ext_ras.GetProjection()) srs_id = int(proj.GetAttrValue('AUTHORITY', 1)) clip_raster(raster_to_clip_path, temp_aoi_path, out_raster_path, srs_id, flip_x_y = is_landsat)
Example #3
Source File: gdal2tiles.py From gdal2tiles with MIT License | 7 votes |
def setup_input_srs(input_dataset, options): """ Determines and returns the Input Spatial Reference System (SRS) as an osr object and as a WKT representation Uses in priority the one passed in the command line arguments. If None, tries to extract them from the input dataset """ input_srs = None input_srs_wkt = None if options.s_srs: input_srs = osr.SpatialReference() input_srs.SetFromUserInput(options.s_srs) input_srs_wkt = input_srs.ExportToWkt() else: input_srs_wkt = input_dataset.GetProjection() if not input_srs_wkt and input_dataset.GetGCPCount() != 0: input_srs_wkt = input_dataset.GetGCPProjection() if input_srs_wkt: input_srs = osr.SpatialReference() input_srs.ImportFromWkt(input_srs_wkt) return input_srs, input_srs_wkt
Example #4
Source File: download_planetlabs.py From cloudless with Apache License 2.0 | 7 votes |
def reproject(geom, from_epsg, to_epsg): """ Reproject the given geometry from the given EPSG code to another """ # Note: this is currently only accurate for the U.S. source = osr.SpatialReference() source.ImportFromEPSG(from_epsg) target = osr.SpatialReference() target.ImportFromEPSG(to_epsg) transform = osr.CoordinateTransformation(source, target) geom.Transform(transform) return geom
Example #5
Source File: gdal2tiles.py From gdal2tiles with MIT License | 6 votes |
def setup_input_srs(input_dataset, options): """ Determines and returns the Input Spatial Reference System (SRS) as an osr object and as a WKT representation Uses in priority the one passed in the command line arguments. If None, tries to extract them from the input dataset """ input_srs = None input_srs_wkt = None if options.s_srs: input_srs = osr.SpatialReference() input_srs.SetFromUserInput(options.s_srs) input_srs_wkt = input_srs.ExportToWkt() else: input_srs_wkt = input_dataset.GetProjection() if not input_srs_wkt and input_dataset.GetGCPCount() != 0: input_srs_wkt = input_dataset.GetGCPProjection() if input_srs_wkt: input_srs = osr.SpatialReference() input_srs.ImportFromWkt(input_srs_wkt) return input_srs, input_srs_wkt
Example #6
Source File: _dataset_back_conversions.py From buzzard with Apache License 2.0 | 6 votes |
def __init__(self, wkt_work, wkt_fallback, wkt_forced, analyse_transformation, **kwargs): if wkt_work is not None: sr_work = osr.SpatialReference(wkt_work) else: sr_work = None if wkt_fallback is not None: sr_fallback = osr.SpatialReference(wkt_fallback) else: sr_fallback = None if wkt_forced is not None: sr_forced = osr.SpatialReference(wkt_forced) else: sr_forced = None self.wkt_work = wkt_work self.wkt_fallback = wkt_fallback self.wkt_forced = wkt_forced self.sr_work = sr_work self.sr_fallback = sr_fallback self.sr_forced = sr_forced self.analyse_transformations = analyse_transformation super(BackDatasetConversionsMixin, self).__init__(**kwargs)
Example #7
Source File: slicing.py From lidar with MIT License | 6 votes |
def polygonize(img,shp_path): # mapping between gdal type and ogr field type type_mapping = {gdal.GDT_Byte: ogr.OFTInteger, gdal.GDT_UInt16: ogr.OFTInteger, gdal.GDT_Int16: ogr.OFTInteger, gdal.GDT_UInt32: ogr.OFTInteger, gdal.GDT_Int32: ogr.OFTInteger, gdal.GDT_Float32: ogr.OFTReal, gdal.GDT_Float64: ogr.OFTReal, gdal.GDT_CInt16: ogr.OFTInteger, gdal.GDT_CInt32: ogr.OFTInteger, gdal.GDT_CFloat32: ogr.OFTReal, gdal.GDT_CFloat64: ogr.OFTReal} ds = gdal.Open(img) prj = ds.GetProjection() srcband = ds.GetRasterBand(1) dst_layername = "Shape" drv = ogr.GetDriverByName("ESRI Shapefile") dst_ds = drv.CreateDataSource(shp_path) srs = osr.SpatialReference(wkt=prj) dst_layer = dst_ds.CreateLayer(dst_layername, srs=srs) raster_field = ogr.FieldDefn('id', type_mapping[srcband.DataType]) dst_layer.CreateField(raster_field) gdal.Polygonize(srcband, srcband, dst_layer, 0, [], callback=None) del img, ds, srcband, dst_ds, dst_layer # convert images in a selected folder to shapefiles
Example #8
Source File: utils.py From unmixing with MIT License | 6 votes |
def get_coord_transform(source_epsg, target_epsg): ''' Creates an OGR-framework coordinate transformation for use in projecting coordinates to a new coordinate reference system (CRS). Used as, e.g.: transform = get_coord_transform(source_epsg, target_epsg) transform.TransformPoint(x, y) Arguments: source_epsg The EPSG code for the source CRS target_epsg The EPSG code for the target CRS ''' # Develop a coordinate transformation, if desired transform = None source_ref = osr.SpatialReference() target_ref = osr.SpatialReference() source_ref.ImportFromEPSG(source_epsg) target_ref.ImportFromEPSG(target_epsg) return osr.CoordinateTransformation(source_ref, target_ref)
Example #9
Source File: tools.py From pyMeteo with GNU Affero General Public License v3.0 | 6 votes |
def write_geotiff(tiff_path, data, upper_left_lon, upper_left_lat, step, AREA_OR_POINT='Point'): """ 写入geotiff。默认pixel is point,默认WGS84 """ rows, columns = data.shape bands = 1 pixel_width = step pixel_height = -step half_step = step / 2 upper_left_x = upper_left_lon - half_step upper_left_y = upper_left_lat + half_step driver = gdal.GetDriverByName('GTiff') dataset = driver.Create(tiff_path, columns, rows, bands, gdal.GDT_Float32) dataset.SetMetadataItem('AREA_OR_POINT', AREA_OR_POINT) dataset.SetGeoTransform([upper_left_x, pixel_width, 0, upper_left_y, 0, pixel_height]) # 获取地理坐标系统信息,用于选取需要的地理坐标系统 sr = osr.SpatialReference() sr.SetWellKnownGeogCS('WGS84') dataset.SetProjection(sr.ExportToWkt()) # 给新建图层赋予投影信息 dataset.GetRasterBand(1).WriteArray(data) dataset.FlushCache() # 将数据写入硬盘 dataset = None
Example #10
Source File: lsma.py From unmixing with MIT License | 6 votes |
def get_idx_as_shp(self, path, gt, wkt): ''' Exports a Shapefile containing the locations of the extracted endmembers. Assumes the coordinates are in decimal degrees. ''' coords = pixel_to_xy(self.get_idx(), gt=gt, wkt=wkt, dd=True) driver = ogr.GetDriverByName('ESRI Shapefile') ds = driver.CreateDataSource(path) srs = osr.SpatialReference() srs.ImportFromEPSG(4326) layer = ds.CreateLayer(path.split('.')[0], srs, ogr.wkbPoint) for pair in coords: feature = ogr.Feature(layer.GetLayerDefn()) # Create the point from the Well Known Text point = ogr.CreateGeometryFromWkt('POINT(%f %f)' % pair) feature.SetGeometry(point) # Set the feature geometry layer.CreateFeature(feature) # Create the feature in the layer feature.Destroy() # Destroy the feature to free resources # Destroy the data source to free resources ds.Destroy()
Example #11
Source File: projection.py From wradlib with MIT License | 6 votes |
def get_extent(coords): """Get the extent of 2d coordinates Parameters ---------- coords : :class:`numpy:numpy.ndarray` coordinates array with shape (...,(x,y)) Returns ------- proj : osr.SpatialReference GDAL/OSR object defining projection """ xmin = coords[..., 0].min() xmax = coords[..., 0].max() ymin = coords[..., 1].min() ymax = coords[..., 1].max() return xmin, xmax, ymin, ymax
Example #12
Source File: projection.py From wradlib with MIT License | 6 votes |
def get_radar_projection(sitecoords): """Get the native radar projection which is an azimuthal equidistant projection centered at the site using WGS84. Parameters ---------- sitecoords : a sequence of two floats the WGS84 lon / lat coordinates of the radar location Returns ------- proj : osr.SpatialReference projection definition """ proj = osr.SpatialReference() proj.SetProjCS("Unknown Azimuthal Equidistant") proj.SetAE(sitecoords[1], sitecoords[0], 0, 0) return proj
Example #13
Source File: terrain_helper.py From CityEnergyAnalyst with MIT License | 6 votes |
def calc_raster_terrain_fixed_elevation(crs, elevation, grid_size, raster_path, locator, x_max, x_min, y_max, y_min): # local variables: temp_shapefile = locator.get_temporary_file("terrain.shp") cols = int((x_max - x_min) / grid_size) rows = int((y_max - y_min) / grid_size) shapes = Polygon([[x_min, y_min], [x_max, y_min], [x_max, y_max], [x_min, y_max], [x_min, y_min]]) geodataframe = Gdf(index=[0], crs=crs, geometry=[shapes]) geodataframe.to_file(temp_shapefile) # 1) opening the shapefile source_ds = ogr.Open(temp_shapefile) source_layer = source_ds.GetLayer() target_ds = gdal.GetDriverByName('GTiff').Create(raster_path, cols, rows, 1, gdal.GDT_Float32) ##COMMENT 2 target_ds.SetGeoTransform((x_min, grid_size, 0, y_max, 0, -grid_size)) ##COMMENT 3 # 5) Adding a spatial reference ##COMMENT 4 target_dsSRS = osr.SpatialReference() target_dsSRS.ImportFromProj4(crs) target_ds.SetProjection(target_dsSRS.ExportToWkt()) band = target_ds.GetRasterBand(1) band.SetNoDataValue(-9999) ##COMMENT 5 gdal.RasterizeLayer(target_ds, [1], source_layer, burn_values=[elevation]) ##COMMENT 6 target_ds = None # closing the file
Example #14
Source File: test_zonalstats.py From wradlib with MIT License | 6 votes |
def test_dump_raster(self): proj = osr.SpatialReference() proj.ImportFromEPSG(31466) filename = util.get_wradlib_data_file("shapefiles/agger/" "agger_merge.shp") test = zonalstats.DataSource(filename, srs=proj) test.dump_raster( tempfile.NamedTemporaryFile(mode="w+b").name, driver="netCDF", pixel_size=100.0, ) test.dump_raster( tempfile.NamedTemporaryFile(mode="w+b").name, driver="netCDF", pixel_size=100.0, attr="FID", )
Example #15
Source File: mgrs.py From QGISFMV with GNU General Public License v3.0 | 6 votes |
def toWgs(mgrs): """ Converts an MGRS coordinate string to geodetic (latitude and longitude) coordinates @param mgrs - MGRS coordinate string @returns - tuple containning latitude and longitude values """ if _checkZone(mgrs): zone, hemisphere, easting, northing = _mgrsToUtm(mgrs) else: zone, hemisphere, easting, northing = _mgrsToUps(mgrs) epsg = _epsgForUtm(zone, hemisphere) src = osr.SpatialReference() src.ImportFromEPSG(epsg) dst = osr.SpatialReference() dst.ImportFromEPSG(4326) ct = osr.CoordinateTransformation(src, dst) longitude, latitude, z = ct.TransformPoint(easting, northing) return latitude, longitude
Example #16
Source File: raster.py From wradlib with MIT License | 6 votes |
def read_gdal_projection(dataset): """Get a projection (OSR object) from a GDAL dataset. Parameters ---------- dataset : gdal.Dataset raster image with georeferencing Returns ------- srs : OSR.SpatialReference dataset projection object Examples -------- See :ref:`/notebooks/classify/wradlib_clutter_cloud_example.ipynb`. """ wkt = dataset.GetProjection() srs = osr.SpatialReference() srs.ImportFromWkt(wkt) # src = None return srs
Example #17
Source File: mgrs.py From QGISFMV with GNU General Public License v3.0 | 6 votes |
def toMgrs(latitude, longitude, precision=5): """ Converts geodetic (latitude and longitude) coordinates to an MGRS coordinate string, according to the current ellipsoid parameters. @param latitude - latitude value @param longitude - longitude value @param precision - precision level of MGRS string @returns - MGRS coordinate string """ # To avoid precision issues, which appear when using more than 6 decimal places latitude = round(latitude, 6) longitude = round(longitude, 6) if math.fabs(latitude) > 90: raise MgrsException('Latitude outside of valid range (-90 to 90 degrees).') if (longitude < -180) or (longitude > 360): raise MgrsException('Longitude outside of valid range (-180 to 360 degrees).') if (precision < 0) or (precision > MAX_PRECISION): raise MgrsException('The precision must be between 0 and 5 inclusive.') hemisphere, zone, epsg = _epsgForWgs(latitude, longitude) src = osr.SpatialReference() src.ImportFromEPSG(4326) dst = osr.SpatialReference() dst.ImportFromEPSG(epsg) ct = osr.CoordinateTransformation(src, dst) x, y, z = ct.TransformPoint(longitude, latitude) if (latitude < -80) or (latitude > 84): # Convert to UPS mgrs = _upsToMgrs(hemisphere, x, y, precision) else: # Convert to UTM mgrs = _utmToMgrs(zone, hemisphere, latitude, longitude, x, y, precision) return mgrs
Example #18
Source File: _a_source.py From buzzard with Apache License 2.0 | 6 votes |
def __init__(self, back_ds, wkt_stored, rect, **kwargs): wkt_virtual = back_ds.virtual_of_stored_given_mode( wkt_stored, back_ds.wkt_work, back_ds.wkt_fallback, back_ds.wkt_forced, ) if wkt_virtual is not None: sr_virtual = osr.SpatialReference(wkt_virtual) else: sr_virtual = None to_work, to_virtual = back_ds.get_transforms(sr_virtual, rect) self.back_ds = back_ds self.wkt_stored = wkt_stored self.wkt_virtual = wkt_virtual self.to_work = to_work self.to_virtual = to_virtual super().__init__(**kwargs)
Example #19
Source File: QgsFmvUtils.py From QGISFMV with GNU General Public License v3.0 | 5 votes |
def GeoreferenceFrame(task, image, output, p): ''' Save Current Image ''' global groupName ext = ".tiff" t = "out_" + p + ext name = "g_" + p src_file = os.path.join(output, t) image.save(src_file) # Opens source dataset src_ds = gdal.OpenEx(src_file, gdal.OF_RASTER | gdal.OF_READONLY, open_options=['NUM_THREADS=ALL_CPUS']) # Open destination dataset dst_filename = os.path.join(output, name + ext) dst_ds = gdal.GetDriverByName("GTiff").CreateCopy(dst_filename, src_ds, 0, options=['TILED=NO', 'BIGTIFF=NO', 'COMPRESS_OVERVIEW=DEFLATE', 'COMPRESS=LZW', 'NUM_THREADS=ALL_CPUS', 'predictor=2']) src_ds = None # Get raster projection srs = osr.SpatialReference() srs.ImportFromEPSG(4326) # Set projection dst_ds.SetProjection(srs.ExportToWkt()) # Set location dst_ds.SetGeoTransform(geotransform_affine) dst_ds.GetRasterBand(1).SetNoDataValue(0) dst_ds.FlushCache() # Close files dst_ds = None # Add Layer to canvas layer = QgsRasterLayer(dst_filename, name) addLayerNoCrsDialog(layer, False, frames_g, isSubGroup=True) ExpandLayer(layer, False) if task.isCanceled(): return None return {'task': task.description()}
Example #20
Source File: hand.py From FloodMapsWorkshop with Apache License 2.0 | 5 votes |
def metersToLatLng(self,ds,X,Y): srs = osr.SpatialReference() srs.ImportFromWkt(ds.GetProjection()) srsLatLong = srs.CloneGeogCS() ct = osr.CoordinateTransformation(srs,srsLatLong) return ct.TransformPoint(X,Y) # # Returns drainage direction data (HydroSHEDS) #
Example #21
Source File: QgsFmvPlayer.py From QGISFMV with GNU General Public License v3.0 | 5 votes |
def SaveGeoCapture(self, task, image, output, p, geotransform): ''' Save Current GeoReferenced Frame ''' ext = ".tiff" t = "out_" + p + ext name = "g_" + p src_file = os.path.join(output, t) image.save(src_file) # Opens source dataset src_ds = gdal.OpenEx(src_file, gdal.OF_RASTER | gdal.OF_READONLY, open_options=['NUM_THREADS=ALL_CPUS']) # Open destination dataset dst_filename = os.path.join(output, name + ext) dst_ds = gdal.GetDriverByName("GTiff").CreateCopy(dst_filename, src_ds, 0, options=['TILED=NO', 'BIGTIFF=NO', 'COMPRESS_OVERVIEW=DEFLATE', 'COMPRESS=LZW', 'NUM_THREADS=ALL_CPUS', 'predictor=2']) src_ds = None # Get raster projection srs = osr.SpatialReference() srs.ImportFromEPSG(4326) # Set projection dst_ds.SetProjection(srs.ExportToWkt()) # Set location dst_ds.SetGeoTransform(geotransform) dst_ds.GetRasterBand(1).SetNoDataValue(0) dst_ds.FlushCache() # Close files dst_ds = None os.remove(src_file) if task.isCanceled(): return None return {'task': task.description(), 'file': dst_filename}
Example #22
Source File: geodict.py From geoist with MIT License | 5 votes |
def setProjection(self, projection): """Set a new projection for the GeoDict. :param projection: Valid proj4 string. :raises DataSetException: When input is not valid proj4. """ srs = osr.SpatialReference() srs.ImportFromProj4(projection) if srs.ExportToProj4() == '': raise DataSetException( '%s is not a valid proj4 string.' % geodict['projection']) self._projection = projection
Example #23
Source File: raster_processing.py From DsgTools with GNU General Public License v2.0 | 5 votes |
def getCRS(self, raster): ''' Gets raster file CRS ''' targetSR = osr.SpatialReference() targetSR.ImportFromWkt(raster.GetProjectionRef()) return targetSR
Example #24
Source File: io.py From EarthSim with BSD 3-Clause "New" or "Revised" License | 5 votes |
def get_ccrs(filename): """ Loads WKT projection string from file and return cartopy coordinate reference system. """ inproj = osr.SpatialReference() proj = open(filename, 'r').readline() inproj.ImportFromWkt(proj) projcs = inproj.GetAuthorityCode('PROJCS') return ccrs.epsg(projcs)
Example #25
Source File: Get_FLIR.py From computing-pipeline with BSD 3-Clause "New" or "Revised" License | 5 votes |
def create_geotiff(np_arr, gps_bounds, out_file_path, base_dir): try: nrows,ncols = np.shape(np_arr) # gps_bounds: (lat_min, lat_max, lng_min, lng_max) xres = (gps_bounds[3] - gps_bounds[2])/float(ncols) yres = (gps_bounds[1] - gps_bounds[0])/float(nrows) geotransform = (gps_bounds[2],xres,0,gps_bounds[1],0,-yres) #(top left x, w-e pixel resolution, rotation (0 if North is up), top left y, rotation (0 if North is up), n-s pixel resolution) output_path = out_file_path output_raster = gdal.GetDriverByName('GTiff').Create(output_path, ncols, nrows, 3, gdal.GDT_Byte) output_raster.SetGeoTransform(geotransform) # specify coordinates srs = osr.SpatialReference() # establish coordinate encoding srs.ImportFromEPSG(4326) # specifically, google mercator output_raster.SetProjection( srs.ExportToWkt() ) # export coordinate system to file # TODO: Something wonky w/ uint8s --> ending up w/ lots of gaps in data (white pixels) output_raster.GetRasterBand(1).WriteArray(np_arr.astype('uint8')) # write red channel to raster file output_raster.GetRasterBand(1).FlushCache() output_raster.GetRasterBand(1).SetNoDataValue(-99) output_raster.GetRasterBand(2).WriteArray(np_arr.astype('uint8')) # write green channel to raster file output_raster.GetRasterBand(2).FlushCache() output_raster.GetRasterBand(2).SetNoDataValue(-99) output_raster.GetRasterBand(3).WriteArray(np_arr.astype('uint8')) # write blue channel to raster file output_raster.GetRasterBand(3).FlushCache() output_raster.GetRasterBand(3).SetNoDataValue(-99) # for test: once we've saved the image, make sure to append this path to our list of TIFs tif_file = os.path.join(base_dir, tif_list_file) f = open(tif_file,'a+') f.write(output_path + '\n') except Exception as ex: fail('Error creating GeoTIFF: ' + str(ex))
Example #26
Source File: test_zonalstats.py From wradlib with MIT License | 5 votes |
def test_get_geom_properties(self): proj = osr.SpatialReference() proj.ImportFromEPSG(31466) filename = util.get_wradlib_data_file("shapefiles/agger/" "agger_merge.shp") test = zonalstats.DataSource(filename, proj) np.testing.assert_array_equal( [[76722499.98474795]], test.get_geom_properties(["Area"], filt=("FID", 1)) )
Example #27
Source File: test_zonalstats.py From wradlib with MIT License | 5 votes |
def test_get_clip_mask(self): proj_gk = osr.SpatialReference() proj_gk.ImportFromEPSG(31466) coords = np.array( [ [2600020.0, 5630020.0], [2600030.0, 5630030.0], [2600040.0, 5630040.0], [2700100.0, 5630030.0], [2600040.0, 5640000.0], ] ) mask = zonalstats.get_clip_mask(coords, self.npobj, proj_gk) out = np.array([True, True, True, False, False]) np.testing.assert_array_equal(mask, out)
Example #28
Source File: dem.py From FloodMapsWorkshop with Apache License 2.0 | 5 votes |
def metersToLatLng(self,ds,X,Y): srs = osr.SpatialReference() srs.ImportFromWkt(ds.GetProjection()) srsLatLong = srs.CloneGeogCS() ct = osr.CoordinateTransformation(srs,srsLatLong) return ct.TransformPoint(X,Y) # create matching osm water layer
Example #29
Source File: Qneat3Framework.py From QNEAT3 with GNU General Public License v3.0 | 5 votes |
def calcIsoContours(self, max_dist, interval, interpolation_raster_path): featurelist = [] try: import matplotlib.pyplot as plt except: return featurelist ds_in = gdal.Open(interpolation_raster_path) band_in = ds_in.GetRasterBand(1) xsize_in = band_in.XSize ysize_in = band_in.YSize geotransform_in = ds_in.GetGeoTransform() srs = osr.SpatialReference() srs.ImportFromWkt( ds_in.GetProjectionRef() ) raster_values = band_in.ReadAsArray(0, 0, xsize_in, ysize_in) raster_values[raster_values < 0] = max_dist + 1000 #necessary to produce rectangular array from raster #nodata values get replaced by the maximum value + 1 x_pos = linspace(geotransform_in[0], geotransform_in[0] + geotransform_in[1] * raster_values.shape[1], raster_values.shape[1]) y_pos = linspace(geotransform_in[3], geotransform_in[3] + geotransform_in[5] * raster_values.shape[0], raster_values.shape[0]) x_grid, y_grid = meshgrid(x_pos, y_pos) start = interval end = interval * ceil(max_dist/interval) +interval levels = arange(start, end, interval) fid = 0 for current_level in nditer(levels): self.feedback.pushInfo("[QNEAT3Network][calcIsoContours] Calculating {}-level contours".format(current_level)) contours = plt.contourf(x_grid, y_grid, raster_values, [0, current_level], antialiased=True) for collection in contours.collections: for contour_paths in collection.get_paths(): for polygon in contour_paths.to_polygons(): x = polygon[:,0] y = polygon[:,1] polylinexy_list = [QgsPointXY(i[0], i[1]) for i in zip(x,y)] feat = QgsFeature() fields = QgsFields() fields.append(QgsField('id', QVariant.Int, '', 254, 0)) fields.append(QgsField('cost_level', QVariant.Double, '', 20, 7)) feat.setFields(fields) geom = QgsGeometry().fromPolylineXY(polylinexy_list) feat.setGeometry(geom) feat['id'] = fid feat['cost_level'] = float(current_level) featurelist.insert(0, feat) fid=fid+1 return featurelist
Example #30
Source File: test_georef.py From wradlib with MIT License | 5 votes |
def test_proj4_to_osr(self): projstr = ( "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 " "+x_0=3500000 +y_0=0 +ellps=bessel " "+towgs84=598.1,73.7,418.2,0.202,0.045,-2.455,6.7 " "+units=m +no_defs" ) srs = georef.proj4_to_osr(projstr) p4 = srs.ExportToProj4() srs2 = osr.SpatialReference() srs2.ImportFromProj4(p4) assert srs.IsSame(srs2) with pytest.raises(ValueError): georef.proj4_to_osr("+proj=lcc1")