如何将TIF文件投影到纬度/经度坐标?

时间:2019-02-11 17:47:26

标签: python numpy anaconda conda rasterio

毫无疑问,这个问题以前是被问过的,但是我现在已经浏览了几个小时,没有人提出我正在得到的错误(如果已经接近,任何潜在的解决方案要么都行不通,要么太复杂了。我去研究)。

一个简单的问题:我正在使用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,而且我很确定如果不这样做,就不会设置环境变量。

因此,总的来说,这使我困惑不已,我为此花费了太多时间。如果有人在处理此问题上有任何经验或任何建议,我很乐意实施它们并最终解决此问题。

0 个答案:

没有答案