十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

武大遥感上机考试备考:从编程到软件操作的完整攻略

武大遥感上机考试备考:从编程到软件操作的完整攻略 简介武汉大学遥感信息工程学院2004—2010年研究生入学考试上机复试题目汇集于此时间跨度七个年度面向报考该院研究生的考生可系统覆盖历年常见编程题型与算法实现要求作为复试上机准备的真题练习库。压缩包内共76个文件txt保存题目数据或结果cpp为参考程序doc为试题与说明文档dsp/dsw等为Visual C工程配置整体约306KB便于直接打开编译和对照调试。文件中既有输入输出样例也含部分参考实现例如基于最邻近规则的试探法聚类算法等典型上机题能够帮助考生熟悉机试环境、理解出题思路、检验并修正自身代码多份工程文件还原了当年的项目结构适合反复练习。已有533人学习/下载是武大遥感学院复试上机不可多得的历年真题合集。 又到了考研复试和期末上机的密集季我的私信里几乎每天都能收到同一个问题武大遥感学院的上机考试到底难不难考什么怎么准备。这个问题我在读研期间还真有发言权——带过本科生的遥感课程上机也帮导师整理过复试的操作题算是一路从考生做到助教再做到出题辅助。今天不整理所谓的“题库”也不搞押题我把这类考试背后的考察逻辑、必备技能、典型题型和踩过的坑完整拆一遍。无论你是准备报考武汉大学遥感信息工程学院还是遥感、测绘、地信方向想系统提升上机能力的学生这篇都值得存下来照着练。先给个结论上机考试和笔试是两码事。笔试问你“知道吗”上机问的是“能做出来吗”。评卷人真正看的是你面对一个遥感任务时能不能从数据输入一路跑到成果输出中间的编程、参数、报错处理、结果分析每一项都在打分。所以备考的关键不是背诵理论而是亲手把每条流程做到肌肉记忆。1. 先搞懂这场上机考试到底在考什么1.1 考试形式进场前至少要知道的一件事武大遥感学院的上机考试一般安排在学院机房Windows系统为主考试前会统一装好ENVI、ArcGIS、Python通常是Anaconda环境等常用软件部分课程历史题目里出现过IDL和MATLAB但近几年Python的出现频率越来越高。考试时间一般在2到3小时之间常见的是2小时题目数量两到四题不等基本围绕编程题、软件操作题、综合分析题三种形式展开。比较典型的组合是一道基础编程题一道遥感图像处理软件操作题再配一个空间分析相关的综合题。编程题通常要求你实现一个经典算法并处理给定数据比如直方图均衡化、图像滤波、影像融合、几何纠正软件操作题则多数是“用ENVI对某景影像做分类输出结果并分析”综合题会把多个环节串起来例如给出DEM和暴雨情景要求分析淹没范围并统计影响面积。这里我补充一点基于常见实践的说明不同年份、不同课程的题目结构会略有差异但整体思路不会偏离“数据处理算法实现空间思维”这个框架。1.2 高分逻辑从读题到交付一条完整的处理链我出过几次上机题的辅助工作也批过不少试卷。观察下来真正拿高分的同学不是代码写得多花哨而是能交付一条完整的处理链。什么叫完整以“对遥感影像做去云处理”为例低分答案可能只写了去云算法本身高分答案会包括读取数据、识别云和云影、替换被遮挡区域、拼接输出、保存为指定格式、最后对处理前后做定性评价。如果题目要求写分析结论还会补一段简短的文字说明。这一条特别关键阅卷人通常按步骤给分每跑通一个环节就拿到一段分数。很多人考试时卡在数据读取或格式转换上后面算法再会写也白搭。所以我建议准备阶段就有意识地练习“把一个小任务的单点功夫串成一条流水线”而不是孤立地刷算法。2. 三类核心技能直接决定拿分上限2.1 Python Numpy把公式变成能运行的结果遥感图像的本质就是数组灰度图是二维矩阵多光谱影像是三维立方体Python里的Numpy库就是为此而生的。备考这一块我建议按这个顺序练先搞定数组切片和基础运算然后练习用GDAL或 rasterio 读写栅格再实现几个经典算法最后跑通一次分类。以直方图均衡化为例很多教程只给了公式但上机考试要求你真正跑出结果。我写过一个精简版本结构如下import numpy as np from osgeo import gdal def hist_equalization(img_array): # 计算各灰度级像素个数 hist np.bincount(img_array.ravel(), minlength256) # 累计分布函数 cdf hist.cumsum() # 对累计分布做归一化映射到0-255 cdf_min cdf[cdf 0].min() lut ((cdf - cdf_min) / (img_array.size - cdf_min) * 255).astype(np.uint8) return lut[img_array] # 数据读取与输出 ds gdal.Open(input.tif) band ds.GetRasterBand(1) img band.ReadAsArray() result hist_equalization(img) driver gdal.GetDriverByName(GTiff) out_ds driver.Create(output.tif, ds.RasterXSize, ds.RasterYSize, 1, gdal.GDT_Byte) out_ds.GetRasterBand(1).WriteArray(result) out_ds.SetGeoTransform(ds.GetGeoTransform()) out_ds.SetProjection(ds.GetProjection()) out_ds.FlushCache()代码不长但里面有几个高频扣分点一是np.bincount要加minlength256否则某些位深非8bit或灰度值不连续时会报错或漏统计二是输出时要同步写入仿射变换参数GeoTransform和投影信息Projection否则结果虽然能显示但丢掉了地理参考在后续叠加分析中就废了三是注意数据类型转换均衡化结果要转成uint8如果用默认的 int64 直接写回8bit影像会导致数据截断或报错。这些细节在平时练习时容易被忽略考场上却特别容易变成拦路虎。我自己的习惯是每次写完算法马上用一副真实遥感影像测试一遍肉眼对比输入输出发现结果不对就从头排查数据读取和类型问题。2.2 ENVI和ArcGIS操作不是会点按钮而是懂参数为什么这么设软件操作题看起来最简单实际翻车率最高。因为很多人只会按流程点按钮一旦题目换了个数据源或者换个参数要求就卡住了。ENVI和ArcGIS这类软件每一个对话框里的参数背后都有物理意义和适用条件上机考试考查的正是这些“为什么”。拿ENVI做监督分类举例训练样本的质量直接决定分类精度。我曾经在帮学生改题时发现不少同学ROI画得特别随意有的把阴影区也算到水体里有的植被样本取的纯林地而不包含农田到了分类结果里漏分、错分就非常明显。通常训练样本要做到每类不少于50个像元而且要覆盖该类别的内部光谱变化比如“植被”就要包含深绿林地、浅绿草地、偏黄的作物等多类光谱特征。ArcGIS方面最容易考的是空间分析和坐标投影。缓冲区分析、坡度坡向提取、水文分析、叠加统计都是传统考点。操作层面没有太多秘密关键是把每个工具的输入输出吃透。比如水文分析必须先做填洼Fill否则DEM里的凹陷会让流向提取出现断流比如做缓冲区分析之前要确认要素类使用的是投影坐标系单位是米而不是度否则缓冲区半径100在度单位下可能直接覆盖全球。2.3 空间坐标与投影最容易翻车的隐藏考点遥感上机考试里的很多错误根源都出在坐标系上。常见问题包括不同数据源的投影不一致导致叠加结果漂移用经纬度的数据直接做面积统计导致数值严重失真没有为输出结果正确设置投影导致再导入时错位。这类问题对初学者来说还比较抽象我习惯用一个生活类比来解释坐标系好比大家约好在同一个地图上开会你用的是平面直角坐标“上楼右转第三间房”我报的是经纬度“北纬30度附近”信息都没错但根本对不上没法一起干活。考试前花二十分钟把常用投影再复习一遍非常值得。至少要理解地理坐标系如WGS84、CGCS2000和投影坐标系如UTM、高斯-克吕格的区别懂得不同投影带的中央经线如何设置知道Web Mercator和UTM各自的适用场景。碰到投影不一致的数据在ArcGIS里用Project Raster或Define Projection能很快解决。判别方法也简单先看元数据再看数据范围如果经纬度范围是两位小数左右的England坐标而元数据写的是WGS84那多半需要定义或转换投影。3. 典型题型拆解从题目到答案的完整路径3.1 编程题实例直方图均衡化这可以说是遥感上机考试中最经典的送分题但每年都有人做不全。题目通常这样出给定一张8bit灰度遥感影像文件常见GeoTIFF格式要求用Python实现直方图均衡化输出处理后的影像并简要说明算法原理。我建议答题时拆成四步先用GDAL读取数据再写均衡化函数然后保存结果最后写一段文字解释。这个顺序的好处在于即便最后没时间写解释代码部分已经拿到了80%的分数。代码里务必处理两类边界情况一是影像中存在0值背景或无效值如果背景像素数量庞大均衡化会把有效范围内拉伸得很夸张应对方法是先统计有效像素的直方图再把背景值置0或NaN二是输入影像可能是16bit直接用256做映射范围会变暗需要判断位深并动态设置灰度级数。我还想提醒一个小技巧写完均衡化后用直方图对比图来验证。如果结果影像的直方图看起来“均匀地拉平”说明思路正确如果还是集中在暗部多半是累计分布函数的归一化公式写错了。3.2 软件操作题实例用ENVI对Landsat影像做监督分类假设题面是使用ENVI对Landsat 8 OLI影像进行土地覆盖监督分类类别包括水体、植被、建设用地和其他最后输出分类结果图并计算混淆矩阵和总体精度。拿到题先别急着点工具栏合理顺序是这样第一加载多光谱影像注意选对波段组合Landsat 8常用432RGB合成真彩色但分类时建议用全部可用波段参与尤其是短波红外对水体边界非常敏感第二创建ROI每类至少采集50到100个样本点点要分散且均匀不能全部集中在影像的某个角落第三选择分类器我用得比较多的是支持向量机或随机森林它们对训练样本数量的要求不如最大似然那么敏感泛化效果也更好。如果题目指定最大似然法则需要检查各类别样本的统计分布尽量避免训练样本光谱差异过大。分类完成后务必做精度评估。在ENVI里把验证样本和分类结果做混淆矩阵报告总体精度和Kappa系数。这个步骤很多同学会漏掉但它往往是题目明确要求的得分点。最后导出分类结果时设置合适的颜色方案和类别名称这样既清晰又能让阅卷老师一眼看出你的结果不是乱分类。3.3 综合题实例基于DEM的洪水淹没范围分析综合题是上机考试里最容易拉开差距的题型。常见设计是给定某一区域的DEM数据和土地利用数据模拟强降雨情景下可能被淹没的范围统计受影响面积并说出哪些土地利用类型风险最高。这题的完整流程并不复杂但每一步都有坑。第一步在ArcGIS中对DEM做填洼处理否则地表微小的凹陷会被误判为洼地导致水流无法汇出。第二步用水文分析工具提取流向和流量流量阈值需要反复试阈值越大生成的河网越稀疏对应的淹没范围也越小我通常先用默认阈值跑一遍看效果再按题面要求微调。第三步给定一个水位面用栅格计算器选出DEM高程低于水位的区域这就是淹没范围。第四步把淹没范围与土地利用图层叠加用Tabulate Area或Zonal Statistics统计各类别的淹没面积。这类题目时间成本高建议从后半段开始做因为前面软件操作题可能耗掉很多时间。我记得有一次自己模拟时光调流量阈值就试了快20分钟后来才意识到阈值影响的是河网密度而淹没范围更多取决于水位高度于是果断固定阈值、集中精力调整水位流程才顺畅起来。综合题的分析结论同样要写清楚不要只交一张图至少用一两句说明“在给定情景下农田和建设用地受影响最大建议重点防护”之类的结论性内容。4. 易踩的坑和我的排查方法4.1 数据打开就报错先查扩展名、位深和头文件上机考试现场最常见的翻车点就是数据读不进来。我问过一个考生当时的反应他说对着一个.tif文件用GDAL打开结果返回 None当场大脑一片空白。排查思路其实很简单第一确认文件路径有没有中文和空格GDAL在Windows下对中文路径兼容性不太好第二确认是不是真正的GeoTIFF有时候题目给的是ENVI标准格式扩展名虽然写着.dat但必须配合.hdr头文件才能识别第三用gdalinfo或rasterio打印影像的尺寸、波段数和数据类型确定位深是8bit、16bit还是浮点型再决定后续处理策略。这种事最怕临场慌张。我的建议是考前把自己常用的读写代码封装成一个小函数库放进U盘或云端进场后如果允许自带脚本先导入十秒就能完成环境自检。4.2 叠加对不上坐标投影问题十有八九缓冲区结果跑到地图外面去、分类结果和矢量边界偏移、面积统计大得离谱这些诡异现象背后基本都是坐标系问题。常见场景是DEM是UTM投影土地利用数据是Albers等积投影两个范围差不多但叠加后位置错开好几公里。遇到这种问题我通常会用“两步检查法”第一步看元数据右键图层的属性查看“源”或“数据源”选项卡里的坐标系第二步把图层的范围显示出来如果边界坐标范围在几十万到几百万通常是投影坐标如果在一百一十几度到几度之间的小数范围则是地理坐标。两者不一致时在ArcGIS中用Project工具统一到同一坐标系再分析不要直接拿原始数据去叠加。这里注意一个细节如果一个图层有投影信息但显示不正确可能需要用“定义投影”工具重新指定正确坐标系而不是用“投影”工具。搞反会导致二次偏移反而把问题搞得更复杂。4.3 时间不够用先保住主干结果再补细节和结论上机考试的节奏比大多数人想的要紧张。我见过太多学生把时间砸在反复微调参数上最后综合题都没来得及提交。针对这种情况我给自己总结了一套答题顺序先花2到3分钟通读全部题目挑出分值最高、自己最熟悉的一题先做每道题先跑通主流程拿到基础结果再回头优化次要步骤中间所有生成的文件都随手保存命名带上步骤号万一后面做错了还有回退余地。具体到单题内部也一样。比如监督分类这道题我建议先用默认参数快速跑一遍分类出了结果图后再根据分类效果决定要不要补样本或调分类器。如果一开始就想着完美训练样本时间往往不够反而连基础分类图都交不上去。最后留10分钟检查每一个输出文件是否能正常打开是否有坐标系信息是否填写了必要的文字说明。我还有一个私藏习惯每场模拟考都严格按2小时倒计时来练到点就停止作答然后对照参考答案给自己打分。这样练上三到五次考场上对时间的掌控感会完全不一样遇到突发报错也不至于打乱整体节奏。上机考试说到底拼的是平时有没有把每个环节真正亲手做过。代码写过和看过是两回事分类流程跑通和跑顺也是两回事。如果这篇文章正好帮你在考前理清了思路就从现在开始找一份真实数据从头到尾把均衡化、分类、淹没分析各跑一遍。等上了考场你会发现所谓难题其实都是熟练功。本文还有配套的精品资源点击获取
返回列表