diff --git a/wntr/gis/network.py b/wntr/gis/network.py index 86f399e30..a6ea7e7a4 100644 --- a/wntr/gis/network.py +++ b/wntr/gis/network.py @@ -191,8 +191,8 @@ def _create_wn(self, append=None): for element in [self.junctions, self.tanks, self.reservoirs]: if element.shape[0] > 0: assert (element['geometry'].geom_type).isin(['Point']).all() - df = element.reset_index() - df.rename(columns={'index':'name', 'geometry':'coordinates'}, inplace=True) + df = element.reset_index(names="name") + df.rename(columns={'geometry':'coordinates'}, inplace=True) df['coordinates'] = [[x,y] for x,y in zip(df['coordinates'].x, df['coordinates'].y)] wn_dict['nodes'].extend(df.to_dict('records')) @@ -201,8 +201,7 @@ def _create_wn(self, append=None): if element.shape[0] > 0: assert 'start_node_name' in element.columns assert 'end_node_name' in element.columns - df = element.reset_index() - df.rename(columns={'index':'name'}, inplace=True) + df = element.reset_index(names="name") df['vertices'] = df.apply(lambda row: list(row.geometry.coords)[1:-1], axis=1) df.drop(columns=['geometry'], inplace=True) wn_dict['links'].extend(df.to_dict('records')) diff --git a/wntr/tests/test_gis.py b/wntr/tests/test_gis.py index 9772ceaec..6c3bd8565 100644 --- a/wntr/tests/test_gis.py +++ b/wntr/tests/test_gis.py @@ -74,6 +74,14 @@ def setUpClass(self): def tearDownClass(self): pass + def test_gis_index(self): + # Tests that WN can be made using dataframes with customized index names + wn_gis = self.wn.to_gis() + wn_gis.junctions.index.name = "my_index" + wn_gis.pipes.index.name = "my_index" + wn2 = wntr.network.from_gis(wn_gis) + self.wn == wn2 + def test_wn_to_gis(self): # Check type isinstance(self.gis_data.junctions, gpd.GeoDataFrame)