weixin_67366983 2024-02-03 15:04 采纳率: 60%
浏览 29
已结题

怎么用MGWR2.2进行回归啊

在网上到处搜操作步骤都没有,第一次做回归分析相关的,一点都不会。
我要做的课题是城市热岛效应以及影响因素分析,那么就要用温度与影响因素做回归。
第一步,我首先计算出了几个遥感指数(DNVI,DNSI,DNBBI)之类的,也将地表温度反演了
第二步,MRWR2.2回归分析,只能输入一个文件,还必须是.excel,或者是.csv格式的。

那么问题来了,我是需要将温度反演结果栅格转点转换为表格,遥感指数文件也这样做,将他们放在同一张表格里才可以吗,可是怎么样放在同一张表格里呢?

第三步,假如输出了结果,给的是一个表格和一个TXT文件,那么就需要表格转为栅格数据可视化,那么怎么做到可视化,将回归结果作为空间分布图展示呢。

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-02-03 15:06
    关注

    引自免费微信小程序:皆我百晓生

    针对您的问题,我可以提供一个详细的步骤指南和说明,但请注意由于MGWR2.2(Multivariate Geographically Weighted Regression)的具体代码实现细节无法直接提供,我将基于该模型的一般使用流程和GIS数据处理的基本方法来指导您。

    步骤1:数据准备与合并

    1. 栅格转点 对于地表温度反演结果栅格数据和遥感指数栅格数据,您可以使用GIS软件如ArcGIS或QGIS将其转换为点矢量文件。通常的步骤包括:

    • 使用Raster to Point工具(在ArcGIS中)或者gdal_polygonize.py等GDAL命令(在QGIS或Python环境中),将栅格数据转为点要素,并且每个点记录其所在位置的栅格值。
    • 将不同指标转换得到的点文件进行属性合并,确保它们在同一空间参考系下。
    # 假设在ArcGIS中的操作示意(非实际代码)
     arcpy.RasterToPoint_conversion("temperature_raster", "temperature_points", "VALUE")
     arcpy.RasterToPoint_conversion("DNVI_raster", "DNVI_points", "VALUE")
     # 然后对points进行属性合并
     arcpy.Append_management([["temperature_points", "temperature"], ["DNVI_points", "DNVI"]], "combined_points.shp")
    

    2. 数据整理 将所有需要用于回归分析的字段(如温度、DNVI、DNSI、DNBBI等)整理到同一个表格(Excel或.csv格式)中,确保每一行代表一个观测点的数据。

    步骤2:使用MGWR2.2进行回归分析

    对于MGWR2.2的使用,由于具体API接口或命令行参数没有公开信息,一般做法是按照软件提供的用户手册或教程上传整理好的数据文件,并设置相应的空间权重矩阵以及其他回归参数。

    步骤3:结果可视化

    1. 输出表格解读 根据MGWR2.2给出的结果表格,可以获取回归系数、局部回归方程等信息。

    2. 结果转栅格并可视化 利用输出的TXT或其他格式的局部回归结果,结合原始的空间点数据,通过GIS软件重新生成具有回归结果属性的栅格数据。这一步可能涉及编程操作,比如在Python环境里使用GeoPandas和rasterio库:

    # 这是一个简化的示例,假设你已经有了回归结果df和原始点数据gdf
    import geopandas as gpd
    import rasterio
    from rasterio import features
    
    # 将回归结果赋给点数据的新的属性列
    gdf['regression_result'] = df['regression_coefficient']
    
    # 创建一个新的空栅格
    out_raster_path = 'output.tif'
    transform, width, height = rasterio.open('your_base_raster.tif').meta['transform'], ... , ...
    
    # 将带有回归结果的点数据转为栅格
    burn_values = gdf['regression_result'].tolist()
    shapes = [(geom, value) for geom, value in zip(gdf.geometry, burn_values)]
    rasterized = features.rasterize(shapes=shapes, out_shape=(height, width), fill=0, transform=transform)
    
    with rasterio.open(out_raster_path, 'w', driver='GTiff', height=height, width=width,
                       count=1, dtype=rasterized.dtype, crs=gdf.crs.to_string(), transform=transform) as dst:
        dst.write_band(1, rasterized)
    

    接下来,您可以在GIS软件中加载这个新生成的回归结果栅格数据,进一步制作空间分布图展示热岛效应的影响因素分析结果。

    由于具体实现会因实际情况和软件版本的不同而有所差异,请务必参照您所使用的MGWR2.2软件的实际文档或教程进行操作。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月24日
  • 已采纳回答 2月16日
  • 创建了问题 2月3日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境