问题标签 [rasterio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 通过gdal将多个乐队合并在一起......正确
我在 python 中使用了一些 Sentinel-2 卫星图像。现在我使用较新的(2016 年过去)没有问题。但我需要使用 2016 年的一些。这些不是欧洲航天局以同样的方式预处理的!
通常,当您下载磁贴时,您通常会获得每个卫星波段的 .jp2 文件。但是在较新的版本中,它们会为您与正常波段一起预处理 RGB 版本。这个版本在 python 中对我来说很棒。但是,为了创建旧图像的 RGB 版本,我需要将三个波段 (4,3,2 - R,G,B) 合并到 1 个文件中。Gdal_merge 起初处理得很好。当我打开图像时,它看起来很棒!但是在将它读入 python 后,我立即注意到有些地方不对劲。图像显示为纯白色图片,上面有一些蓝色条纹。现在我去了 gdalinfo 更新的工作示例和我自己缝合在一起的旧版本,这就是输出。
您可能会注意到,起初尺寸看起来不错。但是这些带子的类型不正确,颜色也不正确。所以当我合并文件时,我显然做错了。
这是我用来将 3 个波段合并到 1 个 .jp2 文件中的命令。
现在如前所述。这会创建一个文件,当我在 QGIS 中打开它时,该文件看起来很漂亮。但它在python中对我没用。
这是 python 导入的屏幕转储。
img 是 ESA 预处理后的图像。
现在在我看来,我对这种图像处理缺乏一些基本的了解。因此,结合 Stackoverflow 的智慧——我能做些什么来正确地将我的乐队拼接成一个性感的 RGB,可以被光栅模块正确读取。
提前致谢 :)
python - Python 2.7 - CV2,Rasterio 收到错误 numpy.ndarray 对象不可调用
我正在尝试使用 geojson 中的形状来掩盖图像。
我要做的第一件事是获取图像中代表我的经纬度坐标的像素。
当我获得该信息时,我使用该坐标构建了一个“多边形”,然后尝试裁剪图像,但出现此错误:
“numpy.ndarray”对象不可调用
请注意,绝对路径是指.jp2文件。
我也尝试使用第一个坐标作为第五个坐标来“密封”多边形,但没有任何改变。
我得到的唯一错误信息是:
这是我所有的全部代码:
python - 生成 GeoTIFF 颜色图
我正在生成 2D 统计图,并且还想生成和保存图像颜色图。平均尺寸图像的数据类型为 float32。以下示例从在线资源修改:
不起作用,对 colormap(1) 的调用返回一个 NULL 表并终止程序。
将数据类型更改为 uint8 或 uint16,它以某种方式工作,但我一直无法找到有关如何更改浮点和整数数据类型的颜色表和映射的示例。
有人可以提供一个片段来展示如何为浮点图像生成不同的颜色图、颜色解析和/或颜色托盘吗?虽然我目前正在使用 rasterio,但如果有人可以发布解决方案,我也可以转换此 GDAL。
raster - python中的光栅基对象?
我想创建一些简单的栅格测试数据rasterio
,以便稍后处理。我不想从磁盘写入/读取任何文件,而是想从变量/内存对象中工作。我暂时也不需要给这个光栅一个投影。例如,对于asc
类型栅格,它可以像这样简单:
是否rasterio
支持我可以用上述数据填写的任何对象,而不必担心写入或读取光栅文件?谢谢
python - 如何在python中先合并然后裁剪栅格
目前,我必须从大量栅格中创建大量瓷砖(由形状优美的多面体定义)。
每个图块都是一个多边形,而栅格只是我磁盘上的 tiff 文件。
现在,我首先找到与图块相交的所有栅格文件名,然后将它们放在一个列表中。
然后我应用以下程序
剩下的步骤是用定义瓷砖的形状多边形裁剪“马赛克”栅格。
但是,通过执行合并步骤,马赛克变成了一个 numpy 数组,所以我不能对它应用 mask 方法。
python-3.x - rasterio - 加载多维数据
我刚刚发现了 rasterio,以便在 Python 中轻松处理栅格。我正在处理多维气候数据(4D 和 5D)。我成功地4D-NetCDF
用 rasterio 打开并读取了我的文件(lat: 180, lon: 361, time: 6, number: 51)
。但是,栅格数据集对象向我显示了三个维度(180, 361, 306)
,其中维度 3 和维度 4 结合在一起。栅格数据集对象只能存储 3 个维度吗?
如果是,rasterio 如何结合维度 3 和 4,以了解 306 的哪一层与原始图层相似?谢谢。
python - 从 4 波段图像中提取 RGB(光栅)
我是 python 的初学者,我仍然熟悉它的库,如果这是一个新手问题,我深表歉意。我只想显示 4 个波段(R、G、B、NIR)的图像。我想删除 NIR 并保留其他 3。我该怎么做?由于 rasterio 返回的是对象而不是图像,因此我无法使用 split 功能。
这当然显示了不正确的结果(白色和黄色图像)。
编辑,我尝试了以下方法:
但它仍然以黄色和白色显示图像。
image - rasterio:中心裁剪 geotiff、profiles 和 window_transform
我正在尝试使用 rasterio 做一个简单的方形 geotiff 中心裁剪。
我使用 numpy 裁剪图像,它按预期工作,然后更新图像配置文件的高度和宽度。
我还使用 更新仿射变换src.window_transform
,但我做错了。仿射变换最终是不正确的。
我的代码如下。谁能告诉我我在哪里搞砸了?谢谢。
代码:
python - 为使用 rasterio 读取的文件设置 CRS
我正在使用 Rasterio 在 Python 中读取 jpg 图像及其关联的世界文件,如下所示:
正确读取了图像文件及其关联的世界文件,但是 CRS 未定义(我猜这是因为世界文件不包含 CRS)。这是输出:
读取文件后如何在 Rasterio 中手动设置 CRS?
python - 我将 rasterio 捆绑到可执行文件中的方式有问题
预期行为和实际行为。
我希望rasterio
使用pyinstaller
. 该脚本在我的 python 环境中运行良好。但是我无法使用PyInstaller
.
重现问题的步骤。
我有一个名为的脚本workflow_3.py
,其中包含以下内容:
import rasterio
就是这样。我尝试编译然后使用 pyinstaller 运行它,如下所示:
(wps_env36) D:\11202750-002_RA2CE\Basis>pyinstaller workflow_3.py
(wps_env36) D:\11202750-002_RA2CE\Basis>dist\workflow_3\workflow_3.exe
编译似乎运行完成,但是当我运行可执行文件时,出现以下错误:
尝试解决问题
'rasterio._shim'
我通过显式添加到hidden-imports
变量包含的列表来修改规范文件。然后我跑了pyinstaller workflow_3.spec
。这导致了其他ModuleNotFoundError
模块,例如control
.pycrs.py
和vrt.py
.
添加这些以hidden-imports
成功消除该ModuleNotFoundError
特定包的 ,但它仍会查找其他包,所有这些包都包含在C:\ProgramData\Anaconda2\envs\wps_env36\Lib\site-packages\rasterio
. 该目录中大约有 40 个模块。将此目录中的每个文件名都添加到hidden-imports
变量中似乎有些过分。事实上,我什至不知道它是否会起作用。
因此,我还尝试将整个目录添加到我的pathex
变量中,以便它可以扩展PYTHONPATH
它。然而,这会导致另一个问题:
File "c:\programdata\anaconda2\envs\wps_env36\lib\traceback.py", line 5, in <module>
File "c:\programdata\anaconda2\envs\wps_env36\lib\linecache.py", line 11, in <module>
File "c:\programdata\anaconda2\envs\wps_env36\lib\tokenize.py", line 27, in <module>
ImportError: cannot import name 'open'
pre-safe-import-module hook failed, needs fixing.
操作系统
Windows 7的
Rasterio 版本和出处
rasterio 版本是 1.0.8,来自 conda-forge python 版本是 3.6.6
我有两个版本的 pyinstaller
第二个是开发版,因为这个问题,我必须得到它
问题
如何使用PyInstaller
冻结应用程序rasterio
?