예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
파일: io.py 프로젝트: whigg/cate
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)
예제 #6
0
파일: io.py 프로젝트: TomBlock/cate
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)
예제 #7
0
    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)
예제 #8
0
    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)
예제 #9
0
    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)
예제 #10
0
    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)