GIS空间分析之公路选线

一、 实验目的
掌握成本距离的使用方法,对实际问题进行空间分析。假设某地新建了一个小学。考虑到学生上学放学交通问题,打算修建一条公路与已有公路连接起来现在将修筑一条连接这两个区域的公路,在修建公路的时候需要考虑地形坡度问题和公路经过地区的土地利用情况,从而减少成本和工程难度。

二、实验准备
软件准备arcgis10.2
数据准备:公路起点,已有公路,学校,土地利用,高程

三、实验步骤
1.将数据导入arcgis,然后先进行坡度的提取,空间分析工具—表面分析----坡度提取(slope),空间分析环境与高程一致。
在这里插入图片描述
在这里插入图片描述

2.将土地利用类型按照要求就行重分类,空间分析工具—分类—重分类,字段选择Landuse, 空间分析环境(输出坐标,处理范围,栅格分析)与高程一致。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  1. 使用相同的方法对坡度进行重分类,在分类方法中选择Equal Interval(等分方法),将坡度分为十类,空间分析环境(输出坐标,处理范围,栅格分析)与高程一致。
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

4在栅格计算器当中计算出成本栅格,赋予坡度60%的权重,赋予土地利用40%的权重。在Spatial Analyst工具条中,点击Raster Calculator,创建下面的语句:[Reclass of 坡度] * 0.6 + [Reclass of 土地利用] * 0.4

在这里插入图片描述

在这里插入图片描述

5.生成图层有很多空白处,他就是处理过程中的空值区域(比如我们前面将wetland设置为空值),在显示上不美观,可以在图层符号化中将空值显示为黑色。

在这里插入图片描述

  1. 在Spatial Analyst工具条中,点击Distance—>Cost Distance,input source data选择“学校”图层,Cost raster选择"cost"图层,确认output raster 和backlink生成的栅格保存路径。空间分析环境(输出坐标,处理范围,栅格分析)与高程一致。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.执行最优路径选择 在Spatial Analyst工具条中,点击Distance—>Cost Path。input source data选择“公路起点”,Cost distance raster选择"距离成本",Cost backlink raster选择"方向",Output features中选择你输出的文件名称。空间分析环境(输出坐标,处理范围,栅格分析)与高程一致。
在这里插入图片描述

8.经过上述处理,我们会发现在地图中增加了一条连接“公路起点”和“学校”的线,就是我们要找的最优路径,如下图所显示。
在这里插入图片描述

四、本次实验关键问题与解决方法
做成本距离和成本路径得时候,需要注意空间分析环境,包括输出坐标系,处理范围和栅格分析,均于高程一致。

五、分析总结
1.成本距离:每个像元至最近源的成本距离。
2. 求得成本回溯方向栅格,表示可以从任意像元沿最小本路径返回最近源。
3.理解成本距离和成本路径得用法和原理

  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个简单的Matlab代码实现计算某天某地太阳高度角和方位角的方法: ``` % 计算某天某地太阳高度角和方位角的函数 % 输入参数:纬度、经度、时区、日期 % 输出参数:太阳高度角、太阳方位角 function [altitude, azimuth] = sunPosition(latitude, longitude, timezone, date) % 计算儒略日 J0 = 367*date.year - floor(7*(date.year + floor((date.month+9)/12))/4) + floor(275*date.month/9) + date.day + 1721013.5; % 计算世界时 UT = date.hour + date.minute/60 + date.second/3600 - timezone; % 转换为格林威治平均恒星时 GMST0 = mod(280.46061837 + 360.98564736629*(J0-2451545)/36525, 360); % 转换为当地平均恒星时 LMST = mod(GMST0 + longitude, 360)/15; % 转换为太阳时角 H = (LMST - 12)*15 + UT*15; % 计算太阳赤纬 delta = asin(sin(23.45*pi/180)*sin(2*pi*(284+date.day)/365)); % 计算太阳直角坐标系中的坐标 x = cos(H*pi/180)*cos(delta); y = sin(H*pi/180)*cos(delta); z = sin(delta); % 计算太阳方位角 azimuth = atan2(y, x)*180/pi + 180; % 计算太阳高度角 altitude = asin(z)*180/pi; end ``` 这个函数接收四个输入参数:纬度、经度、时区、日期,输出太阳高度角和方位角。其中,日期是一个结构体,包含年、月、日、时、分、秒六个字段。使用方法类似这样: ``` % 以北京时间2022年1月1日12:00为例计算太阳高度角和方位角 date.year = 2022; date.month = 1; date.day = 1; date.hour = 12; date.minute = 0; date.second = 0; [altitude, azimuth] = sunPosition(39.9, 116.4, 8, date); fprintf('太阳高度角:%.2f度\n太阳方位角:%.2f度\n', altitude, azimuth); ``` 输出结果为: ``` 太阳高度角:16.77度 太阳方位角:161.56度 ``` 请注意,这个代码只是一个简单的实现,可能存在一些误差,具体的计算方法还需要参考相关文献。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值