求士。 2024-06-05 10:07 采纳率: 0%
浏览 14

在QGIS和Arcmap中显示的同一张栅格图,波段像素值范围却不一样是为啥

在QGIS和Arcmap中显示的同一张栅格图,波段像素值范围却不一样是为啥?

######版本:QGIS 3.34.1,Arcmap10.2

img

img

试过用GDAL将图像波段值设置在0-1之间,其他值设为nodata。
from osgeo import gdal  
  
# 输入和输出文件路径  
input_file = r'Asia_cv_srtm.tif'  
output_file = r'Asia_cv_srtm_processed.tif'  
  
# 打开栅格数据集  
src_ds = gdal.Open(input_file)  
band = src_ds.GetRasterBand(1)  # 假设我们处理的是第一个波段  

# 读取波段数据  
data = band.ReadAsArray()  
  
# 设置无效值(这里我们简单地将其设为-9999)  
data[data < 0] = -9999  
data[data > 1] = -9999  
  
# 设置NoDataValue  
band.SetNoDataValue(-9999)  
  
# 如果需要写入修改后的数据到新文件  
# 创建输出文件(这里我们简单地复制原始文件的驱动器和属性)  
driver = src_ds.GetDriver()  
dst_ds = driver.CreateCopy(output_file, src_ds, 0)  
  
# 获取输出文件的波段并写入修改后的数据  
dst_band = dst_ds.GetRasterBand(1)  
dst_band.WriteArray(data)  
dst_band.SetNoDataValue(-9999)  # 确保在新文件中也设置了NoDataValue  
  
# 清理并关闭数据集  
del dst_band  # Python 2.x 可以不使用这行代码,但在 Python 3.x 中需要显式删除对象  
dst_ds = None  # 确保数据集被正确关闭  
src_ds = None  # 关闭原始数据集  

用Arcmap打开依然会出现负的异常值

img

  • 写回答

1条回答 默认 最新

  • 阿里嘎多学长 2024-06-05 10:07
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    在处理栅格数据时,QGIS和ArcGIS可能会以不同的方式解释和显示数据,这可能是由于它们对数据格式、数据范围和默认设置的不同处理方式造成的。以下是一些可能的原因和解决方案:

    1. 数据解释方式的差异:QGIS和ArcGIS可能使用不同的默认设置来解释栅格数据。例如,一个软件可能将数据解释为有符号的,而另一个可能将其解释为无符号的。

    2. NoData值的处理:虽然你已经尝试设置NoData值,但可能存在处理过程中的问题。确保NoData值在整个数据集中一致地应用。

    3. 数据范围设置:在QGIS中,数据范围可能被自动设置为显示数据的最小值和最大值。而在ArcGIS中,可能需要手动设置数据范围。

    4. 软件版本差异:QGIS 3.34.1和ArcGIS 10.2之间可能存在一些兼容性问题,这可能导致显示不一致。

    5. 驱动程序和库的差异:QGIS和ArcGIS使用不同的库来处理栅格数据,这可能导致解释和显示上的差异。

    为了解决这个问题,你可以尝试以下步骤:

    • 重新检查NoData值的设置:确保NoData值在整个数据集中一致地应用,并且没有遗漏。

    • 在ArcGIS中手动设置数据范围:在ArcGIS中,尝试手动设置数据范围,以确保它与QGIS中显示的范围一致。

    • 更新软件:如果可能,更新到最新版本的QGIS和ArcGIS,以解决可能的兼容性问题。

    • 使用其他工具进行验证:使用其他栅格处理工具(如ENVI或ERDAS)来验证数据的一致性。

    • 检查数据的原始来源:如果可能,检查数据的原始来源和格式,确保数据在导入到QGIS和ArcGIS之前是正确的。

    关于代码实现,你已经提供了一个Python脚本,但可能需要进行一些调整。例如,确保NoData值被正确设置,并且在创建新文件时复制原始文件的元数据。此外,检查是否有任何特定的ArcGIS设置需要调整以正确显示数据。

    至于参考资料,以下是一些可能有用的链接:

    请注意,这些链接提供了关于QGIS、ArcGIS和GDAL的一般信息,你可能需要搜索特定的问题或解决方案。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月5日

悬赏问题

  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型