Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _construct_abbrevs(geodataframe, names):
"""Construct unique abbreviations based on geodataframe.names."""
if names is None:
raise ValueError(
"names is None, but should be a valid column name of"
"geodataframe, choose from {}".format(geodataframe.columns)
)
abbrevs = []
names = _maybe_get_column(geodataframe, names)
names = names.str.replace(r"[(\[\]).]", "")
names = names.str.replace("[/-]", " ")
abbrevs = names.str.split(" ").map(lambda x: "".join([y[:3] for y in x]))
abbrevs = _enumerate_duplicates(abbrevs)
return abbrevs
_check_duplicates(numbers, "numbers")
else:
numbers = geodataframe.index.values
# make sure numbers is a list
numbers = np.array(numbers)
if names is not None:
names = _maybe_get_column(geodataframe, names)
_check_missing(names, "names")
_check_duplicates(names, "names")
if abbrevs is not None:
if abbrevs == "_from_name":
abbrevs = _construct_abbrevs(geodataframe, names)
else:
abbrevs = _maybe_get_column(geodataframe, abbrevs)
_check_missing(abbrevs, "abbrevs")
_check_duplicates(abbrevs, "abbrevs")
outlines = geodataframe["geometry"]
return Regions(
outlines,
numbers=numbers,
names=names,
abbrevs=abbrevs,
name=name,
source=source,
)
if not isinstance(geodataframe, (GeoDataFrame)):
raise TypeError("`geodataframe` must be a geopandas 'GeoDataFrame'")
if numbers is not None:
# sort, otherwise breaks
geodataframe = geodataframe.sort_values(numbers)
numbers = _maybe_get_column(geodataframe, numbers)
_check_missing(numbers, "numbers")
_check_duplicates(numbers, "numbers")
else:
numbers = geodataframe.index.values
# make sure numbers is a list
numbers = np.array(numbers)
if names is not None:
names = _maybe_get_column(geodataframe, names)
_check_missing(names, "names")
_check_duplicates(names, "names")
if abbrevs is not None:
if abbrevs == "_from_name":
abbrevs = _construct_abbrevs(geodataframe, names)
else:
abbrevs = _maybe_get_column(geodataframe, abbrevs)
_check_missing(abbrevs, "abbrevs")
_check_duplicates(abbrevs, "abbrevs")
outlines = geodataframe["geometry"]
return Regions(
outlines,
numbers=numbers,
source of the shapefile
Returns
-------
regionmask.core.regions.Regions
"""
from geopandas import GeoDataFrame
if not isinstance(geodataframe, (GeoDataFrame)):
raise TypeError("`geodataframe` must be a geopandas 'GeoDataFrame'")
if numbers is not None:
# sort, otherwise breaks
geodataframe = geodataframe.sort_values(numbers)
numbers = _maybe_get_column(geodataframe, numbers)
_check_missing(numbers, "numbers")
_check_duplicates(numbers, "numbers")
else:
numbers = geodataframe.index.values
# make sure numbers is a list
numbers = np.array(numbers)
if names is not None:
names = _maybe_get_column(geodataframe, names)
_check_missing(names, "names")
_check_duplicates(names, "names")
if abbrevs is not None:
if abbrevs == "_from_name":
abbrevs = _construct_abbrevs(geodataframe, names)
else: