From 3d397985030d71acdfcd50b0de0ff953d72cd9c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Tr=C3=B6ndle?= Date: Fri, 13 Jan 2017 21:31:48 +0000 Subject: [PATCH] Fix dissolve retains crs (#389) --- geopandas/geodataframe.py | 2 +- geopandas/tests/test_dissolve.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 3f0817d..26b0323 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -486,7 +486,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): g = self.groupby(by=by, group_keys=False)[self.geometry.name].agg(merge_geometries) # Aggregate - aggregated_geometry = GeoDataFrame(g, geometry=self.geometry.name) + aggregated_geometry = GeoDataFrame(g, geometry=self.geometry.name, crs=self.crs) # Recombine aggregated = aggregated_geometry.join(aggregated_data) diff --git a/geopandas/tests/test_dissolve.py b/geopandas/tests/test_dissolve.py index 45cc877..f013be3 100644 --- a/geopandas/tests/test_dissolve.py +++ b/geopandas/tests/test_dissolve.py @@ -51,6 +51,18 @@ class TestDataFrame(unittest.TestCase): self.assertTrue(test.geometry.name == 'myshapes') self.assertTrue(test.geom_almost_equals(self.first).all()) + @unittest.skipIf(str(pd.__version__) < LooseVersion('0.16'), pandas_0_15_problem) + def test_dissolve_retains_existing_crs(self): + assert self.polydf.crs is not None + test = self.polydf.dissolve('manhattan_bronx') + assert test.crs is not None + + @unittest.skipIf(str(pd.__version__) < LooseVersion('0.16'), pandas_0_15_problem) + def test_dissolve_retains_nonexisting_crs(self): + self.polydf.crs = None + test = self.polydf.dissolve('manhattan_bronx') + assert test.crs is None + @unittest.skipIf(str(pd.__version__) < LooseVersion('0.16'), pandas_0_15_problem) def test_first_dissolve(self): test = self.polydf.dissolve('manhattan_bronx')