def test_close(self): features = read_test_features() gdf = GeoDataFrame.from_features(features) self.assertIs(gdf.features, features) self.assertIsInstance(gdf.lazy_data_frame, gpd.GeoDataFrame) gdf.close() self.assertIsNone(gdf.features) self.assertIsNone(gdf.lazy_data_frame)
def test_compat_with_geopandas(self): features = read_test_features() gdf = GeoDataFrame.from_features(features) self.assertIs(type(gdf), GeoDataFrame) self.assertIsInstance(gdf, GeoDataFrame) self.assertIsInstance(gdf, gpd.GeoDataFrame) self.assertIsInstance(gdf, pd.DataFrame) self.assertIs(gdf.features, features) self.assertIsInstance(gdf['A'], pd.Series) self.assertIsInstance(gdf.geometry, gpd.GeoSeries)
def read_geo_data_frame(file: str, crs: str = None, more_args: DictLike.TYPE = None) -> gpd.GeoDataFrame: """ Read a geo data frame from a file with a format such as ESRI Shapefile or GeoJSON. :param file: Is either the absolute or relative path to the file to be opened. :param more_args: Other optional keyword arguments. Please refer to Python documentation of ``fiona.open()`` function. :return: A ``geopandas.GeoDataFrame`` object """ kwargs = DictLike.convert(more_args) or {} features = fiona.open(file, mode="r", **kwargs) return GeoDataFrame.from_features(features)
def read_geo_data_frame(file: str, crs: str = None, more_args: DictLike.TYPE = None) -> gpd.GeoDataFrame: """ Reads geo-data from files with formats such as ESRI Shapefile, GeoJSON, GML. :param file: Is either the absolute or relative path to the file to be opened. :param crs: Optional coordinate reference system. Must be given as CRS-WKT or EPSG string such as "EPSG:4326". The default value for GeoJSON standard is always "EPSG:4326". :param more_args: Other optional keyword arguments. Please refer to Python documentation of ``fiona.open()`` function. :return: A ``geopandas.GeoDataFrame`` object """ kwargs = DictLike.convert(more_args) or {} features = fiona.open(file, mode="r", crs=crs, **kwargs) return GeoDataFrame.from_features(features)
def test_convert(self): self.assertEqual(DataFrameLike.convert(None), None) data = {'c1': [4, 5, 6], 'c2': [6, 7, 8]} xr_ds = xr.Dataset(data_vars=data) pd_ds = pd.DataFrame(data=data) gdf_ds = gpd.GeoDataFrame.from_features(read_test_features()) proxy_gdf_ds = GeoDataFrame.from_features(read_test_features()) self.assertIsInstance(DataFrameLike.convert(xr_ds), pd.DataFrame) self.assertIsInstance(DataFrameLike.convert(pd_ds), pd.DataFrame) self.assertIs(DataFrameLike.convert(pd_ds), pd_ds) self.assertIsInstance(DataFrameLike.convert(gdf_ds), gpd.GeoDataFrame) self.assertIs(DataFrameLike.convert(gdf_ds), gdf_ds) self.assertIsInstance(DataFrameLike.convert(proxy_gdf_ds), GeoDataFrame) self.assertIs(DataFrameLike.convert(proxy_gdf_ds), proxy_gdf_ds) with self.assertRaises(ValidationError): DataFrameLike.convert(42)
def test_fat_ops(self): features = read_test_features() gdf = GeoDataFrame.from_features(features) self.assertIsNotNone(gdf.crs) from cate.ops.data_frame import data_frame_min, data_frame_max df_min = data_frame_min(gdf, 'C') self.assertIsInstance(df_min, gpd.GeoDataFrame) self.assertEqual(len(df_min), 1) self.assertEqual(list(df_min.columns), ['A', 'B', 'C', 'geometry']) self.assertIsInstance(df_min.geometry, gpd.GeoSeries) self.assertIsNotNone(df_min.crs) df_max = data_frame_max(gdf, 'C') self.assertIsInstance(df_max, gpd.GeoDataFrame) self.assertEqual(len(df_max), 1) self.assertEqual(list(df_max.columns), ['A', 'B', 'C', 'geometry']) self.assertIsInstance(df_max.geometry, gpd.GeoSeries) self.assertIsNotNone(df_max.crs)