@@ -165,16 +165,28 @@ def test_from_pystac_object(ds_without_spatial_dims):
165165
166166
167167@pytest .mark .parametrize (
168- "ds" ,
168+ ( "ds" , "expected" ) ,
169169 [
170- xr .Dataset (coords = {"epsg" : xr .DataArray (32633 , name = "epsg" )}),
171- xr .Dataset (coords = {"proj:epsg" : xr .DataArray (32633 , name = "proj:epsg" )}),
172- xr .Dataset (attrs = {"crs" : "epsg:32633" }),
170+ (xr .Dataset (coords = {"epsg" : xr .DataArray (32633 , name = "epsg" )}), 32633 ),
171+ (
172+ xr .Dataset (coords = {"proj:epsg" : xr .DataArray (32633 , name = "proj:epsg" )}),
173+ 32633 ,
174+ ),
175+ (xr .Dataset (attrs = {"crs" : "epsg:32633" }), 32633 ),
173176 ],
174177)
175- def test_maybe_infer_reference_system (ds ):
178+ def test_maybe_infer_reference_system (ds , expected ):
176179 result = maybe_infer_reference_system (ds , reference_system = None )
177- expected = pyproj .crs .CRS .from_epsg (32633 ).to_json_dict ()
180+ expected = pyproj .crs .CRS .from_epsg (expected ).to_json_dict ()
181+ assert result == expected
182+
183+
184+ def test_maybe_infer_reference_system_from_cf_coordinates (ds ):
185+ for n , variable in ds .variables .items ():
186+ if "grid_mapping_name" in variable .attrs :
187+ ds [n ].attrs .pop ("grid_mapping_name" )
188+ result = maybe_infer_reference_system (ds , reference_system = None )
189+ expected = pyproj .crs .CRS .from_epsg (4326 ).to_json_dict ()
178190 assert result == expected
179191
180192
0 commit comments