Skip to content

Commit 2a7cf38

Browse files
committed
Don't set crs attribute
1 parent ac7e9e5 commit 2a7cf38

File tree

2 files changed

+14
-21
lines changed

2 files changed

+14
-21
lines changed

xvec/accessor.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -377,8 +377,6 @@ def to_crs(
377377
_obj = _obj.drop_indexes(variable_crs_solved.keys())
378378

379379
for key, crs in variable_crs_solved.items():
380-
if crs:
381-
_obj[key].attrs["crs"] = CRS.from_user_input(crs)
382380
_obj = _obj.set_xindex([key], GeometryIndex, crs=crs)
383381

384382
return _obj
@@ -507,8 +505,6 @@ def set_crs(
507505
_obj = _obj.drop_indexes(variable_crs_solved.keys())
508506

509507
for key, crs in variable_crs_solved.items():
510-
if crs:
511-
_obj[key].attrs["crs"] = CRS.from_user_input(crs)
512508
_obj = _obj.set_xindex([key], GeometryIndex, crs=crs)
513509

514510
return _obj
@@ -698,12 +694,19 @@ def set_geom_indexes(
698694
_obj = _obj.drop_indexes(coord_names)
699695

700696
for coord in coord_names:
701-
if crs:
702-
_obj[coord].attrs["crs"] = CRS.from_user_input(crs)
703697
_obj = _obj.set_xindex(coord, GeometryIndex, crs=crs, **kwargs)
704698

705699
return _obj
706700

701+
def _get_crs(self, name) -> CRS | None:
702+
if name in self._geom_indexes:
703+
crs = self._obj.xindexes[name].crs
704+
elif name in self._geom_coords_all:
705+
crs = self._obj[name].attrs.get("crs", None)
706+
else:
707+
crs = None
708+
return crs
709+
707710
def to_geopandas(self) -> GeoDataFrame | pd.DataFrame:
708711
"""Convert this array into a GeoPandas :class:`~geopandas.GeoDataFrame`
709712
@@ -777,13 +780,13 @@ def to_geopandas(self) -> GeoDataFrame | pd.DataFrame:
777780
# ensure CRS of all columns is preserved
778781
for c in gdf.columns:
779782
if c in self._geom_coords_all:
780-
gdf[c] = gpd.GeoSeries(gdf[c], crs=self._obj[c].attrs.get("crs", None))
783+
gdf[c] = gpd.GeoSeries(gdf[c], crs=self._get_crs(c))
781784

782785
# if geometry is an index, reset and assign as active
783786
index_name = gdf.index.name
784-
if index_name in self._geom_coords_all:
787+
if index_name in self._geom_indexes:
785788
return gdf.reset_index().set_geometry(
786-
index_name, crs=self._obj[index_name].attrs.get("crs", None)
789+
index_name, crs=self._get_crs(index_name)
787790
) # type: ignore
788791

789792
warnings.warn(
@@ -896,12 +899,10 @@ def to_geodataframe(
896899
# ensure CRS of all columns is preserved
897900
for c in df.columns:
898901
if c in self._geom_coords_all:
899-
df[c] = gpd.GeoSeries(df[c], crs=self._obj[c].attrs.get("crs", None))
902+
df[c] = gpd.GeoSeries(df[c], crs=self._get_crs(c))
900903

901904
if geometry is not None:
902-
return df.set_geometry(
903-
geometry, crs=self._obj[geometry].attrs.get("crs", None)
904-
) # type: ignore
905+
return df.set_geometry(geometry, crs=self._get_crs(geometry)) # type: ignore
905906

906907
warnings.warn(
907908
"No active geometry column to be set. The resulting object "

xvec/tests/conftest.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ def geom_dataset(geom_dataset_no_index):
3636
# a dataset with a geometry coordinate baked by a GeometryIndex
3737
crs = CRS.from_user_input(26915)
3838
ds = geom_dataset_no_index.copy()
39-
ds["geom"].attrs["crs"] = crs
4039
return ds.set_xindex("geom", GeometryIndex, crs=crs)
4140

4241

@@ -53,7 +52,6 @@ def first_geom_dataset(geom_dataset, geom_array):
5352
.drop_indexes("geom")
5453
.set_xindex("geom", GeometryIndex, crs=geom_dataset.xindexes["geom"].crs)
5554
)
56-
fg["geom"].attrs["crs"] = CRS.from_user_input(26915)
5755
return fg
5856

5957

@@ -80,8 +78,6 @@ def multi_geom_dataset(geom_array, geom_array_z):
8078
.set_xindex("geom", GeometryIndex, crs=26915)
8179
.set_xindex("geom_z", GeometryIndex, crs=26915)
8280
)
83-
ds["geom"].attrs["crs"] = ds.xindexes["geom"].crs
84-
ds["geom_z"].attrs["crs"] = ds.xindexes["geom_z"].crs
8581
return ds
8682

8783

@@ -98,8 +94,6 @@ def multi_geom_multi_crs_dataset(geom_array, geom_array_z):
9894
.set_xindex("geom", GeometryIndex, crs=26915)
9995
.set_xindex("geom_z", GeometryIndex, crs="EPSG:4362")
10096
)
101-
ds["geom"].attrs["crs"] = ds.xindexes["geom"].crs
102-
ds["geom_z"].attrs["crs"] = ds.xindexes["geom_z"].crs
10397
return ds
10498

10599

@@ -117,8 +111,6 @@ def multi_geom_no_index_dataset(geom_array, geom_array_z):
117111
.set_xindex("geom", GeometryIndex, crs=26915)
118112
.set_xindex("geom_z", GeometryIndex, crs=26915)
119113
)
120-
ds["geom"].attrs["crs"] = ds.xindexes["geom"].crs
121-
ds["geom_z"].attrs["crs"] = ds.xindexes["geom_z"].crs
122114
return ds
123115

124116

0 commit comments

Comments
 (0)