Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 直接将tiff文件读取到numpy阵列,而不保存到磁盘_Python_Image_Numpy_Xarray_Rasterio - Fatal编程技术网

Python 直接将tiff文件读取到numpy阵列,而不保存到磁盘

Python 直接将tiff文件读取到numpy阵列,而不保存到磁盘,python,image,numpy,xarray,rasterio,Python,Image,Numpy,Xarray,Rasterio,我经常下载(geo)tiff文件,将其保存到临时磁盘空间,然后使用读取数据以获得一个numpy.ndarray,然后我可以对其进行分析 例如,使用: 对于其他(netcdf)地理网格化数据,我可以使用它来获取数据 发件人: 因此,获取一个xarray对象就像一个流一样,很容易进入ndarray,但我只知道它是在netcdf数据集上工作的。是否有办法将tif数据“流”到ndarray对象?理想情况下,我们可以用 with rasopen(url, 'r') as src: array =

我经常下载(geo)tiff文件,将其保存到临时磁盘空间,然后使用读取数据以获得一个
numpy.ndarray
,然后我可以对其进行分析

例如,使用:

对于其他(netcdf)地理网格化数据,我可以使用它来获取数据 发件人:

因此,获取一个xarray对象就像一个流一样,很容易进入
ndarray
,但我只知道它是在netcdf数据集上工作的。是否有办法将tif数据“流”到
ndarray
对象?理想情况下,我们可以用

with rasopen(url, 'r') as src:
    array = src.read()

as
rasterio
返回一个很好的元数据对象以及
ndarray
,尽管我还没有将其用于url资源。谢谢。

是的,您可以从内存中读取:

from rasterio.io import MemoryFile

with MemoryFile(data) as memfile:
    with memfile.open() as dataset:
        data_array = dataset.read()
或直接从URL:

with rasterio.open('https://pathto.tif') as dataset:
    print(dataset.profile)
我无法让后者与您的URL一起使用,因此您可能希望尝试第一个

from rasterio.io import MemoryFile

with MemoryFile(data) as memfile:
    with memfile.open() as dataset:
        data_array = dataset.read()
with rasterio.open('https://pathto.tif') as dataset:
    print(dataset.profile)