毫无疑问,这个问题以前是被问过的,但是我现在已经浏览了几个小时,没有人提出我正在得到的错误(如果已经接近,任何潜在的解决方案要么都行不通,要么太复杂了。我去研究)。
一个简单的问题:我正在使用LANDSAT8数据,并希望将其重新投影到另一个坐标系中。最简单的方法是什么?
到目前为止我尝试过的方法:
from rasterio import warp
import xarray as xr
da = rasterio.open('path/to/.tif')
ny, nx = len(da['y']), len(da['x'])
x, y = np.meshgrid(da['x'], da['y'])
warp.transform(da.crs, {'init': 'epsg:4326'}, x.flatten(), y.flatten())
我回来了:
File "<ipython-input-100-987d9fe0ea5a>", line 1, in <module>
warp.transform(da.crs, {'init': 'epsg:4326'}, x.flatten(), y.flatten())
File "C:\Users\ton99817\AppData\Local\Continuum\anaconda2\envs\sat_data\lib\site-packages\rasterio\warp.py", line 52, in transform
return _transform(src_crs, dst_crs, xs, ys, zs)
File "rasterio/_base.pyx", line 850, in rasterio._base._transform (rasterio/_base.c:18379)
File "rasterio/_base.pyx", line 937, in rasterio._base._osr_from_crs (rasterio/_base.c:20157)
CRSError: Invalid CRS
我不知道怎么了。我检查了“ GDAL_DATA”环境变量是否指向我具有适当的.csv文件(即它具有“ gcs.csv”文件)的位置,并通过在脚本开始处进行设置来完成此操作,
import os
os.environ['GDAL_DATA'] = \
'C:/Users/ton99817/AppData/Local/Continuum/anaconda2/envs/sat_data/Library/share/'
因为我使用的是conda,而且我很确定如果不这样做,就不会设置环境变量。
因此,总的来说,这使我困惑不已,我为此花费了太多时间。如果有人在处理此问题上有任何经验或任何建议,我很乐意实施它们并最终解决此问题。