使用Global Mapper与OziExplorer自制等高线地形图教程

需积分: 32 10 下载量 96 浏览量 更新于2024-07-31 收藏 2.79MB DOC 举报
"这篇文章主要介绍了如何使用Google Earth和Global Mapper以及OziExplorer软件来自制地形图,特别是针对梅花山地区的示例。通过SRTM3文件获取地形数据,结合交通图,实现等高线地图的制作。" 在IT领域,自制地形图是一个涉及地理信息系统(GIS)和遥感技术的应用。Google Earth是一款强大的虚拟地球仪软件,提供了全球卫星图像和地形数据,用户可以通过它查看地球上任何位置的三维景观。而Global Mapper和OziExplorer则是专业级别的GIS软件,它们允许用户处理和编辑地理数据,如等高线地图的创建。 首先,我们需要SRTM(Shuttle Radar Topography Mission)数据,这是一种由NASA提供的全球高程数据,例如文中的SRTM3文件,它包含了3弧秒(约90米)分辨率的数字高程模型(DEM)。在Global Mapper中导入SRTM3文件,可以显示地形的立体阴影,帮助我们理解地形特征。 接着,通过OziExplorer加载交通图,这是一个用于户外导航的软件,它可以显示地图索引并读取多种地图格式。找到对应区域的地图文件,如文中提到的0321map,将其保存为图像文件以便于在Global Mapper中使用。 在Global Mapper中进行图像校准是关键步骤,目的是将地图图像与实际地理位置对应起来。通过输入地图图像四个角的经纬度坐标,软件可以计算出图像与实际地理空间的转换关系。这通常需要至少两个点来校准,但在某些情况下,尤其是处理可能存在变形的手绘或扫描地图时,可能需要更多的校准点。 通过以上步骤,我们可以将地形数据与交通图叠加,形成一个包含地形信息和道路网络的综合地图。这对于户外活动爱好者、地理学者以及地图制图人员来说是非常有价值的工具,它能提供更加直观且详细的地图视图,便于规划路线和分析地形特征。 这个过程展示了GIS软件的强大功能以及如何利用开放数据资源进行地图制作。对于想深入学习GIS和遥感技术的人来说,这是一个很好的实践项目。同时,这也提醒我们,合理利用开源工具和数据,可以创造出极具实用价值的信息产品。

% 定义常数 G = 6.67e-11; % 万有引力常数 M_sun = 1.989e30; % 太阳质量 M_earth = 5.972e24; % 地球质量 M_moon = 7.342e22; % 月球质量 D_es = 1.49598e11; % 地-太距离 D_ms = 3.844e8; % 月-太距离 % 初始位置和速度 x_earth = [D_es, 0]; % 地球初始位置 x_moon = [D_es+D_ms, 0]; % 月球初始位置 v_earth = [0, 29.78e3]; % 地球初始速度 v_moon = [0, (29.78e3+1022)]; % 月球初始速度 % 时间间隔和步长 t_start = 0; t_end = 365*24*3600;% 一年的时间 dt = 3600; % 时间步长 % 初始化变量 x = [x_earth,x_moon,v_earth,v_moon]; t = t_start; % 循环计算并绘图 figure while t < t_end % 计算下一个时间步长的位置 x = euler_step(@three_body, x, t, dt); t = t + dt; % 画出地球和月球的位置 subplot(1,2,1) plot(x(1), x(2), 'bo', 'MarkerSize', 10, 'MarkerFaceColor', 'b'); hold on; plot(x(3), x(4), 'ro', 'MarkerSize', 5, 'MarkerFaceColor', 'r'); xlim([-D_es*1.5, D_es*1.5]); ylim([-D_es*1.5, D_es*1.5]); xlabel('x (m)'); ylabel('y (m)'); title(['Three-body simulation (t=',num2str(t/(24*3600),'%.2f'),' days)']); subplot(1,2,2) plot(x(3)-x(1), x(4)-x(2), 'ro', 'MarkerSize', 10, 'MarkerFaceColor', 'b'); hold on axis([-D_ms*3 D_ms*3 -D_ms*3 D_ms*3]) drawnow; end % 定义欧拉方法函数 function x_next = euler_step(f, x, t, dt) x_next = x + dt*f(x, t); end % 定义微分方程函数 function dx_dt = three_body(x,t) G = 6.67e-11; M_sun = 1.989e30; M_earth = 5.972e24; M_moon = 7.342e22; D_es = 1.49598e11; D_ms = 3.844e8; x_earth = x(1:2); x_moon = x(3:4); v_earth = x(5:6); v_moon = x(7:8); % 地球受到的引力 F_es = G*M_sun*M_earth/norm(x_earth)^2; % 月球受到的引力 F_ms = G*M_sun*M_moon/norm(x_moon)^2; % 地球和月球之间的引力 F_em = G*M_earth*M_moon/norm(x_earth-x_moon)^2; % 地球和月球的加速度 a_earth = -F_es/M_earth*(x_earth/norm(x_earth)) - F_em/M_earth*((x_earth-x_moon)/norm(x_earth-x_moon)); a_moon = -F_ms/M_moon*(x_moon/norm(x_moon)) + F_em/M_moon*((x_earth-x_moon)/norm(x_earth-x_moon)); dx_dt = [v_earth, v_moon, a_earth, a_moon]; end该程序中地球和月球的初始位置和初始速度分别为多少

2023-06-02 上传