Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# Several cases
if shape is not None:
if isinstance(shape, pd.DataFrame):
gdf = shape
else:
gdf = sio.read_shapefile(shape)
gis.transform_geopandas(gdf, to_crs=ogrid.corner_grid,
inplace=True)
if rasterio is None:
raise ImportError('This feature needs rasterio')
from rasterio.features import rasterize
with rasterio.Env():
mask = rasterize(gdf.geometry, out=mask)
if geometry is not None:
geom = gis.transform_geometry(geometry, crs=crs,
to_crs=ogrid.corner_grid)
if rasterio is None:
raise ImportError('This feature needs rasterio')
from rasterio.features import rasterize
with rasterio.Env():
mask = rasterize(np.atleast_1d(geom), out=mask)
if grid is not None:
_tmp = np.ones((grid.ny, grid.nx), dtype=np.int16)
mask = ogrid.map_gridded_data(_tmp, grid, out=mask).filled(0)
if corners is not None:
cgrid = self._ogrid.center_grid
xy0, xy1 = corners
x0, y0 = cgrid.transform(*xy0, crs=crs, nearest=True)
x1, y1 = cgrid.transform(*xy1, crs=crs, nearest=True)
mask[np.min([y0, y1]):np.max([y0, y1])+1,
np.min([x0, x1]):np.max([x0, x1])+1] = 1
- Point: all keywords accepted by scatter(): marker, s, edgecolor,
facecolor...
- Line: all keywords accepted by plot(): color, linewidth...
- Polygon: all keywords accepted by PathPatch(): color, edgecolor,
facecolor, linestyle, linewidth, alpha...
"""
# Reset?
if geometry is None:
self._geometries = []
return
# Transform
geom = gis.transform_geometry(geometry, crs=crs,
to_crs=self.grid.center_grid)
# Text
if text is not None:
x, y = geom.centroid.xy
x = x[0] + text_delta[0] * self.grid.nx
sign = self.grid.dy / np.abs(self.grid.dy)
y = y[0] + text_delta[1] * self.grid.ny * sign
self.set_text(x, y, text, crs=self.grid.center_grid,
**text_kwargs)
# Save
if 'Multi' in geom.type:
for g in geom:
self._geometries.append((g, kwargs))
# dirty solution: I should use collections instead