求士。 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 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀