问题标签 [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.
cartopy - 在 Cartopy GeoAxes 上绘制栅格栅格
我已经看到了关于这个主题的其他一些问题,但是图书馆已经发生了足够的变化,以至于这些问题的答案似乎不再适用。
Rasterio曾经包含一个在 Cartopy GeoAxes 上绘制 rasterio 栅格的示例。这个例子大致是这样的:
但是,此代码不再绘制栅格。相反,我得到这样的东西:
它应该如下所示:
当我在 rasterio 问题跟踪器中询问这个问题时,他们告诉我该示例已被弃用(并删除了该示例)。不过,我想知道是否有某种方法可以做我想做的事情。谁能指出我正确的方向?
python - Gdal 内存泄漏,但 Anaconda 不允许我升级到更新版本
我正在尝试运行一些简单的操作Rasterio
,GDAL
但内存泄漏正在杀死我的计算机。我只是想打开并绘制一个tif
文件,它大约需要 50 GB !!!Ram,即使图像本身只有 1.2 GB。
代码非常简单。
这是中间面板中内存利用率的图片。这都是内存。
所以这个过程实际上从未奏效,现在我必须退出并重新登录我的计算机上的帐户以清除内存。
我安装了 gdal 版本 2.3.3 和 rasterio 版本 1.0.21,所以我希望将 gdal 版本升级到 3.0.1 的人可以解决问题。
我在 python 3.7、Ubuntu linux 18.04 LTS 上使用 Anaconda 发行版。但是当我尝试使用升级到较新的 gdal 版本时,conda install -c conda-forge gdal gdal==3.0.1
我收到错误,表明与其他软件包不兼容。
所以我不确定我应该在这里做什么?每次运行命令时,我都无法继续注销并重新登录我的帐户。内存永远不会释放,所以如果我再次运行任何 rasterio 或 gdal 命令,整个系统就会锁定。
python - 将 Boxcar 平均值应用于地理空间图像
假设以下数组A
是读取 GeoTIFF 图像的结果,例如使用 rasterio,其中 nodata 值被屏蔽,即数组B
。
我想在一个方形社区上应用一个棚车平均平滑。第一个问题是我不确定哪个 scipy 函数代表 boxcar 平均值?
我认为它可能是 ndimage.uniform_filter。但是,与 scipy.signal 相比,ndimage 不适用于掩码数组。
那么,我如何应用一个占 nodata 值的 boxcar 平均值,例如scipy.signal.medfilt?
python-3.x - rasterio open 和 skimage.io.read 都为我试图打开的 TIFF 返回一个 NaN 数组
我正在尝试从 sentinel-1 打开 SAR 图像。我可以在 QGIS 中查看 tiff 文件,所以我知道数据在那里,但是当我在 python 中打开并查看/显示它时,我可以用来打开数据的所有模块都会产生一个 NaN 区域,基本上是在暗示图像中没有数据。可视化图像会产生一个完全黑色的图像,但形状是正确的。
这是我在图像中读取的代码:
任何帮助,将不胜感激。
谢谢你
python - 如何在 Python 中将 jpeg (uint8) 转换为 tiff (float32) 格式以获取栅格波段索引?
我需要开发一个初始 python 代码来获取具有 RGB 波段的 8 位无符号整数 JPEG 图像,运行 VARI 波段索引:(Vari = (green - red) / (green + red - blue)),然后提供输出图像,其值范围为 -1 到 1。
我曾尝试利用 GDAL 并通过 struct.pack 方法运行该过程,以逐行计算每个像素的索引值,但我认为这使这变得复杂。
目前我有一个使用 Rasterio 编写的代码,但由于格式问题,我找不到正确返回值的方法。- 输入 JPEG 为 8 位 uint 意味着结果值的范围为 0-255 - 如果我尝试除以最大值,则图像中每个像素值的格式都会舍入为 0 - 当我尝试定义输出为 float32 我收到有关 JPEG 格式或 str 格式的错误,具体取决于使用的代码
VARI 波段索引应返回从 -1 到 1 的每个像素的值。此时,我几乎肯定输入和输出之间的格式差异是问题所在,但我很难找到解决此问题的方法。如果您有任何建议,或者如果我这样做完全错误,请告诉我您认为可行的方法。
python-3.x - 如何使值小于 0.2 的像素透明,以便在 Python 中可以看到背景中的底图?
我正在插入点数据以在 for 循环中生成动态洪水淹没图。这会在每次迭代中生成洪水地图,其中像素值显示水存在的概率。但是,我无法使干像素(值 < 0.2)透明,因此添加时可以看到底图。
最初,我创建了一个预测概率的地理数据框。然后使用 rasterio 库生成光栅文件,使用条件 (<0.2 = np.nan) 设置干像素。我的代码是:
现在我想导入保存的栅格并将其绘制在同样位于同一坐标 (EPSG:27700) 中的背景栅格上,并显示颜色条。
我试过这个:
尽管 x 和 y 坐标显示不正确,但没有背景也可以正常工作。但是如果我将它添加到上面的代码中就不起作用:
我还尝试了“向绘图添加背景地图”中描述的方法:https ://geopandas.readthedocs.io/en/latest/gallery/plotting_basemap_background.html
但这似乎并不能解决问题。如果我能得到一些解决问题的建议,那就太好了。 我想使用此背景图像覆盖范围图
python - 如何使用 Rasterio 更改栅格的 dtype
在栅格数据集上应用多边形掩码时,我一直无法处理 Python 的 rasterio 包中的任何数据值。该特定栅格是具有 7 个波段的 Landsat uint8,并且没有固有地指定无数据值,因为 255 是无数据的保留值。但是,有时 uint8 数据是从 uint16 数据压缩而来的,而 255 值是一个有效的数据值,我不想将其视为“无数据”(数据是完整的位范围)。如果未指定此参数,则 rasterio 的掩码函数的默认值是将 0 视为“无数据”值,这同样存在问题,因为 0 有时被视为有效数据值。有没有办法覆盖“无数据”的元数据值?
我尝试了几种不同的方法来解决这个问题(详见下文),但都没有成功。
使用 rasterio.open() 将 uint8 数据转换为 uint16 数据并将“256”指定为无数据值,因为它将超出任何 uint8 数据的范围,但在 uint16 数据范围内被接受。这就是某些软件程序(如 ArcMap)有时会处理不分配数据值的方式。
与步骤 1 类似,但尝试使用 rasterio.open() in 打开 uint8 数据并在函数中设置“nodata=np.nan”。收到错误:“给定 nodata 值 nan,超出了其数据类型的有效范围。” 尽管在文档中 nan 被列为“nodata”参数的有效条目。
在使用 rasterio.mask() 的掩码过程中,指定 nodata=nan。收到错误“无法将 fill_value nan 转换为 dtype。”
我希望看到给定多边形之外的所有像素都转换为“无数据”条目,该条目不一定是有效范围的一部分,这样脚本就不会意外地将有效值视为无数据。
python - 在 Python 中使用 rasterio 将 GEOTIFF 重新网格化以降低分辨率
我正在尝试采用 .tif 格式的 0.05 X 0.05 度栅格并将其重新网格化为 0.25 X 0.25 度(系数为 5)。我正在使用 rasterio 使用下面的代码来执行此操作
但我收到此错误:
关于在光栅中重新网格化的任何建议,或者是否有其他可能更容易做到这一点的包的建议?提前致谢。
python - 如何在栅格图层 Python 上绘制空间点?
我在 epsg:27700 中有一个点的地理数据框,并希望用 geoplot.kdeplot() 在同样位于 epsg:27700 的栅格图层上绘制这些点。但我正在努力实现这一目标。
最初,我尝试过 geopandas 使用 Contextily 添加背景。虽然它可以工作,但该区域的范围非常小,并且在将其转换为 epsg=3857 并使用缩放级别 13 使街道地图最不可见之后 - 这些点不会落在应有的位置。
我希望这些点在栅格上(最好是 kdeplot)。我之前在 R 中以最小的努力完成了它,但在这里我需要在 Python 中完成它,而且我是 Python 新手。解决方案在这里也可能非常简单,但我需要一些建议。谢谢您阅读此篇。
python - 从多个栅格输入中裁剪相同的地理多边形
我正在尝试定位 geotif 栅格,以便我可以提取相同区域的栅格数据,从而产生相同大小的输出图像。
这个想法是能够创建重叠卫星照片的延时摄影,一些照片只包含重叠的部分,所以我需要对齐和裁剪/不管它们。
我目前正在使用 rasterio,但我并没有锁定使用它。我正在尝试定位下面的两个栅格:
因此它们将在同一坐标系中对齐。这个想法是获得固定大小的输出,其中仅获取来自输入栅格的、位于固定大小区域内的像素。
顺便说一句,坐标系统是 WGS 84 / UTM zone 32N (EPSG:32632)。
安装依赖:
例子:
如您所见,尺寸不匹配,这意味着我无法将完全相同的多边形提取到固定尺寸的结果图像中,无论它是否包含数据。