- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将 16 位 3 波段 RGB GeoTIFF 文件转换为 8 位 3 波段 JPEG 文件。看起来 gdal
库应该能很好地解决这个问题。 我的问题是如何在 python gdal API 中指定转换为 8 位输出,以及如何缩放该转换中的值?另外,如何判断输出是 8 位还是 16 位?
gdal.Translate()
函数应该可以达到目的。但是,我发现将值重新调整为 8 位的唯一示例涉及 C 接口(interface)。下面的两篇文章提供了这方面的示例,但它们也不符合我的目的,因为它们没有使用 Python 界面。
我想出的 python 代码是:
from osgeo import gdal
gdal.Translate(destName='test.jpg', srcDS='test.tif')
这会起作用,但我不认为输出被转换为 8 位或值被重新缩放。有谁知道如何应用这些特定设置?
请注意,下面的这篇文章非常相似,但使用了 PIL
包。然而,问题是 PIL
显然无法摄取 16 位图像。当我尝试这段代码时,我在读取数据时遇到了错误。因此,我无法使用此解决方案。
最佳答案
你可以像这样使用选项
from osgeo import gdal
scale = '-scale min_val max_val'
options_list = [
'-ot Byte',
'-of JPEG',
scale
]
options_string = " ".join(options_list)
gdal.Translate('test.jpg',
'test.tif',
options=options_string)
选择适合图像的最小值和最大值作为 min_val
和 max_val
如果您想将缩放比例扩展到整个范围,您可以简单地跳过最小值和最大值,只使用 scale = '-scale'
关于python - 使用 python 将 16 位 GeoTiff 文件转换为 8 位 JPEG 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49911864/
我正在编写一个需要读取 4 channel geotiff 图像的代码,在本例中为 16 位图像(数据实际上是 12 位分辨率,但以 16 位编码)。 我的主要目标是读取像素值以便稍后使用它们。来自这
我正在制作一个 Python 脚本,该脚本将读取 GeoTIFF 文件,并将执行以下操作:将 GeoTIFF 转换为静态 JPEG(尺寸小得多),并创建一个单独的文本文件,其中包含 GeoTIFF h
我想在 R 中有一个 Geotiff 图像,我该怎么做?下面是一个简单的例子。我想以 Geotiff 格式生成绘图。 require(gstat) data(meuse) coordinates(me
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我正在生成 2D 统计图,并且还想生成和保存图像颜色图。平均尺寸图像的数据类型为 float32。以下示例修改自在线资源: with rasterio.open(name,'w',**profile)
我正在尝试使用 GeoTIFF-jai 库在 Java 中生成经过地理校正的光栅图像。我尝试在 SourceForge 网站上查找有关如何执行此操作的文档,但 SourceForge 说“不幸的是,该
到目前为止,我找不到更改 TIFF 文件中的 GeoTiff-TAG 的方法。我的操作系统是 Linux Lubuntu 18.04,我使用的是 Python 3.x。只是 EXIF-TAG 可以通过
如何将 GeoTIFF(单波段)图像(例如 1000 x 1000 像素)子集化为规则的正方形网格(例如 50 x 50 像素;总共 400 个网格对象);并计算每个对象的平均纬度、平均经度和平均 D
我正在尝试使用 rasterio 加载图像,修改 ndarray,然后使用与原始图像相同的空间引用系统写出。下面的函数是我尝试这样做的。但是输出的 geotiff 中缺少空间引用系统。对我做错了什么有
如何从将 geotiff 图像分成常规 block (例如 50 x 50 像素)的图像中计算每个 block 的平均纬度和平均经度。 输入数据只是图像,例如从以下位置下载:http://eoimag
我的任务是获取一个 GeoTIFF,在其中进行一些图像分割,并将其保存到新的 GeoTIFF(具有现有坐标)。如果我理解正确,坐标将保存在 GeoTIFF 元数据中。所以我从原始文件中获取元数据: F
我有一个带有地理信息的 tif。使用 gdal,我可以将光栅文件转换为数组 (numpy)。 如何获取该数组中一个条目的坐标? 最佳答案 使用仿射变换矩阵,将像素坐标映射到世界坐标。例如,使用 aff
在Python中使用GDAL,如何获取GeoTIFF文件的经纬度? GeoTIFF 似乎不存储任何坐标信息。相反,它们存储 XY 原点坐标。但是,XY 坐标不提供左上角和左下角的经纬度。 看来我需要做
我有一个 geotiff 文件。 import xarray as xr urbanData = xr.open_rasterio('myGeotiff.tif') plt.imshow(urbanD
我有一个存储在多个 GeoTIFF 中的栅格时间序列我想转换为单个 *.tif 的文件 ( NetCDF )文件。数据是uint16 . 我可能可以使用 gdal_translate使用以下方法将每个
我有一个 PNG 图像文件。我想将其转换为 GeoTiff。我安装了 QGIS 软件,但无法使用它,也不知道如何对图像进行地理配准。请帮我。有没有在线软件? 最佳答案 这是一个非常好的教程,其中包含有
我有地理引用 tiff,gdalinfo 输出: Driver: GTiff/GeoTIFF Files: generated.tiff generated.tiff.aux.xml S
我目前有一张来自 GeoTiff 文件的 171 x 171 图像(尽管在其他情况下,我可能有更大的图像)。我的目标是获取图像中的每个像素并将其转换为纬度/经度对。 我已经能够根据这篇 StackOv
我有一组 png 文件和每个文件边缘的 EPSG:3006 坐标。如何使用 Python 将这些 png 文件转换为 geotiff 文件,以便 tiff 文件包含地理元数据。 我想这可以用 Rast
我有一组 png 文件和每个文件边缘的 EPSG:3006 坐标。如何使用 Python 将这些 png 文件转换为 geotiff 文件,以便 tiff 文件包含地理元数据。 我想这可以用 Rast
我是一名优秀的程序员,十分优秀!