广东17种土壤类型空间分布数据:ArcGIS工程、Shapefile与TIF成图实战指南
发布时间:2026/9/10 10:12:27 锦皓数字建站

简介广东17种土壤类型空间分布数据依据联合国粮农组织FAO土壤分类体系区分土类、亚类、土属、土种等多层次类型可满足地理、土地规划与农业领域对区域土壤空间信息的查询、制图和专题分析需求。数据包共19个文件整体约152MB以标准shapefile矢量数据为核心含shp、prj、dbf、shx等配套文件另提供可编辑mxd工程、高分辨率TIF栅格成图、Excel土壤分类编码表、辅助底图压缩包及显示样式修改示意图结构清晰便于不同软件环境使用。属性表中的SOIL_ID字段与“土壤分类编码表”中的“亚类”一一对应用户可据此精确识别17类土壤类型也可利用可编辑mxd自由调整地图样式、图例与配色方案TIF格式则适合直接打印与展示。目前已有152人学习适合需要快速获取广东土壤空间分布底图并进行二次编辑的研究者与GIS从业人员。1. 广东17种土壤类型空间分布从ArcGIS工程到标准shape与TIF成图在拿别人交付的地理数据时最怕的就是“一个.shp裸文件缺投影、缺符号也没说明”。这套广东17种土壤类型空间分布数据把它做成了三联包可编辑的mxd工程文件标准shapefile格式的矢量面层以及一张标准成图TIF。打开mxd就能看到已经配置好图层顺序和图例把shape文件拖进QGIS也不会出现字段乱码。数据采用FAO土壤分类体系制图单元分解为土类、亚类、土属、土种属性表里的SOIL_ID与Excel分类编码表一一对应。这对手头正要做国土空间规划、农业区划或土壤侵蚀分析的人是一个非常利落的起点。但真正要把它用在生产环境还需要先弄懂文件结构、坐标系和属性表关系否则后续配图、剪裁、统计都容易踩坑。2. 从mxd到shape文件先搞清文件家族和坐标参考2.1 解压后每个文件是干什么的后缀名决定工作流拿到压缩包后第一件事不是双击mxd而是把整个目录固定下来。很多GIS新手会随手把所有文件堆到桌面然后发现mxd里的图层路径全部失效。在这个资源里同名的.shp、.shx、.dbf、.prj、.cpg、.sbn、.sbx组成一个完整的标准shapefile家族.shp只存几何.shx是几何索引.dbf存属性.prj存坐标系.cpg存字符集声明.sbn、.sbx是ArcGIS系统自动生成的空间索引删掉也能用ArcGIS会根据要素范围自动重建。文件后缀职责可否删除.shp存储要素几何面、点、线删除则不可用.shx几何位置索引加速显示与查询可重建.dbf属性表SOIL_ID就在这里删除丢失属性.prj坐标参考系统WKT格式删除后无投影.cpg字符集常见UTF-8或GBK决定中文是否乱码可重建.sbn/.sbx空间索引仅ArcGIS使用可重建.shp.xml元数据可删除除了土壤面层目录里还有广东.shp行政边界、china-shapefiles.zip、中国行政区.zip以及广东省.gson。广东.shp是省界用于制图时给出边框土壤类型空间分布_广东省.shp才是17类土壤的制图单元。区分两个同名“广东”的过程实际上就是在确认你的分析图层到底是哪个。工作区路径建议保持稳定比如统一放在D:\soil_delivery\下后续所有相对路径、参考路径都不容易错。2.2 SOIL_ID与FAO分类编码表制图单元拆到了哪个层级土壤类型空间分布_广东省.shp的属性表中最关键的字段是SOIL_ID。配合土壤分类体系.xlsx里的“土壤分类编码表”用SOIL_ID可以关联到亚类名称。xlsx中一般会有土类、亚类、土属、土种的分级实际读法是从亚类出发向上归纳土类向下细分为土属和土种。比如一个多边形标着SOIL_ID对应的编码在编码表里找到亚类名称再关联到土类就能得到完整分类路径。用ArcMap打开时图例默认可能只显示大类或土类如果你想看亚类要用唯一值渲染并选择亚类字段。FAO体系的好处是国内外分类可对照论文里写方法部分时可以直接引用不需要再翻译当地俗名。2.3 不要相信眼睛用gdalinfo检查坐标参考mxd里打开看起来位置正常不代表原始shape文件的坐标系一定适合你的项目。用QGIS或命令行检查.prj更安心。这里以GDAL为例gdalinfo -proj4 土壤类型空间分布_广东省.shp | head -20这行命令要求GDAL已安装conda install gdal或pip install gdal均可。gdalinfo读取shapefile时会输出Driver、Files列表以及图层的Geometry类型。加上-proj4后会把.prj里的WKT坐标参考同步翻译成PROJ.4字符串方便你在代码里直接做投影转换。注意最后的head -20只是截取前20行避免属性字段列表过长刷屏。如果输出里看到PROJCS、GCS_Beijing_1954或GCS_WGS_1984等关键字就说明坐标系明确。建议记下这一步的结果后面做CAD定位时还要用到。3. 用mxd可编辑工程做样式复刻ArcGIS里这样操作不丢图例3.1 打开mxd后先做两件事检查数据源和另存模板双击广东土壤类型空间分布.mxd如果按默认打开大概率看见红色感叹号。原因是mxd保存的是文件路径把压缩包解压到新路径后图层源没有自动重连。此时右键图层选择“Set Data Source”或“Properties→Source”把数据源指向解压目录下的土壤类型空间分布_广东省.shp修正后再双击图层打开符号设置。更稳的做法是先另存为一个副本广东土壤类型空间分布_存档.mxd像上述这样把原始工程先留一份底稿后续不管怎么改符号、调图例都可以随时回到这版没动过的样式。和ArcMap自带的图层文件.lyr不同mxd保存的是整个页面包括图例、比例尺、指北针和所有图层这正好满足“可编辑工程”的交付目标。另存之后原始mxd不要再写所有演示都用副本进行。3.2 用显示样式修改示例迅速换配色资源里的显示样式修改示例.jpg就解决一个核心问题为什么我改了符号颜色图例没有按预想显示。典型的ArcMap流程是右键图层→Properties→Symbology→Categories→Unique Values。Value Field选SOIL_ID点击“Add All Values”ArcGIS会自动用现有配色填满17类。此时再双击每个符号逐个替换颜色或者直接在Color Ramp下拉框里选一套渐变。但对于土壤图不建议使用层级渐变色因为土壤类型是定名分类用区分度高的定性配色比渐变更合理。样式示例图实际上在告诉你每换一次配色要点击“Apply”看整体效果避免某一类颜色过深盖住多边形边界。3.3 用ArcPy批量检查图层源和更新路径如果一个mxd里插入了多个底图省界、行政区、土壤层手工一条条改太慢。写一个ArcPy脚本可以一次性列出所有数据源import arcpy mxd_path rD:\soil_delivery\广东土壤类型空间分布.mxd mxd arcpy.mapping.MapDocument(mxd_path) for lyr in arcpy.mapping.ListLayers(mxd): if lyr.supports(DATASOURCE): print(lyr.name, -, lyr.dataSource) mxd.saveACopy(rD:\soil_delivery\广东土壤类型空间分布_copy.mxd)arcpy.mapping.MapDocument接收的是mxd绝对路径ListLayers遍历当前mxd中所有图层supports(DATASOURCE)用来判断图层对象是否具备数据源属性矢量图层都有纯整饰图层不一定有。打印出来之后你就知道哪些图层路径断链。最后saveACopy不会覆盖原文件适合做版本留痕。需要注意的是mxd中的相对路径设置会影响脚本读出路径的方式建议在保存前勾选“Store relative pathnames”部署到别人机器时容错更高。4. 标准TIF成图在CAD中如何自动定位GeoTIFF和世界文件4.1 标准成图TIF到底是什么格式很多人把TIF简单理解成一张图片直接用于ArcMap时却拖不进去或拖进去没有地理坐标。这个资源里的广东17种土壤类型空间分布.tif是栅格化的成图它的定位能力来自两个地方一个是TIF内部可能携带GeoTIFF标签另一个是旁边可能伴随的.tfw世界文件。.tfw是一个6行文本文件记录左上角坐标、像素尺寸和旋转参数。如果TIF没有世界文件在GIS中就会落到坐标(0,0)附近。验证是否有定位信息用gdalinfo 广东17种土壤类型空间分布.tif输出里的Origin和Pixel Size就是定位的坐标原点与分辨率。如果看到Origin (109.5, 21.5)说明左上角位置明确像素大小通常是经纬度单位或米这种情况下TIF可以直接叠加到矢量上。Size则表示栅格行列数影响打印清晰度。没有地理信息的TIF只显示一行Corner Coordinates: (0.0, 0.0)这时候就需要补世界文件。4.2 拿到普通TIF时用GDAL补上地理参考如果实际交付的TIF没有坐标标签而手里有shapefile的投影参数可以按以下方式补出一个可定位的GeoTIFF。这里假设原始TIF的行列数已知、范围也已知gdal_translate -of GTiff \ -a_srs EPSG:4490 \ -a_ullr 109.5000 21.5000 117.3000 20.1000 \ input_no_geo.tif 广东土壤类型空间分布_geo.tif-a_srs指定目标坐标系这里EPSG:4490是CGCS2000地理坐标系如果你确认原始数据是WGS84就写EPSG:4326。-a_ullr按顺序给左上角X、左上角Y、右下角X、右下角Y四个坐标值决定图像落位范围。注意这种赋值方式是整幅图拉伸到范围如果TIF本身的投影不是简单经纬度应该先用gdalwarp重投影。常见做法是先读取shapefile的Corner Coordinates再用相同范围去补TIF图层叠加才严丝合缝。4.3 CAD中自动定位MAPINSERT和ALIGN两条路线网络上高频出现“tif影像图怎么在cad中自动定位”放到这套数据上答案分成两种。如果是AutoCAD Map 3D或Civil 3D直接输入MAPINSERT在对话框中选择TIF软件会读取TFW的坐标信息自动把影像摆到真实坐标位置前提是TIF与TFW同名且在同一目录下并且CAD图形的坐标系与TIF坐标系兼容。如果是普通AutoCAD不带地理空间模块MAPINSERT不可用。这时就用手动但稳的ALIGN先用IMAGEATTACH把TIF插入然后用ALIGN命令依次指定影像上的已知点和目标坐标点。比如把TIF的两个图廓角点在CAD里输入对应经纬度或平面坐标缩放旋转一次完成。5. 把SOIL_ID与土壤编码表接起来制作17类专题图的完整数据流5.1 Excel编码表转为CSV在ArcGIS里做属性关联土壤分类体系.xlsx是Excel工作簿ArcGIS虽然支持直接读取xlsx但生产环境经常因为Excel被占用或版本差异失败。我一般的做法是先转成CSV用Excel打开工作簿选中“土壤分类编码表”工作表另存为soil_class.csv编码选UTF-8。然后在ArcMap里做Joinimport arcpy shp rD:\soil_delivery\土壤类型空间分布_广东省.shp csv rD:\soil_delivery\soil_class.csv arcpy.JoinField_management( in_datashp, in_fieldSOIL_ID, join_tablecsv, join_fieldSOIL_ID, fields[土类, 亚类, 土属, 土种] )这段代码的作用是把CSV里四个字段追加到shapefile属性表中。in_data是目标图层in_field是目标图层关联字段join_table是编码表join_field是编码表中和SOIL_ID对应的字段fields表示只追加这四个字段避免把Excel里其他说明性列带入。join完成之后打开属性表就能看到每个多边形附上了土壤分类名称不再只显示一串ID。需要特别留意CSV中关联字段的数据类型要与SOIL_ID一致如果SOIL_ID是双精度而CSV里是文本join会失败此时先在Excel里把编码列统一为数值或统一为文本。5.2 土类、亚类、土属、土种什么时候看哪一层级拿到属性表后常见困惑是符号化该选哪个字段。17种土壤类型是成果层级通常对应亚类土属和土种属于更细的制图单元适合区域性调查。做全省小比例尺专题图时用“土类”符号化图例更精简做县域分析或某种土壤的适种性评价时按照“亚类”区分因为有17类图例项较多需要控制显示字号。SOIL_ID与亚类一一对应这是编码表设计好的所以最终分类精度以亚类为基准土类是从亚类聚合上去的。你可以先按土类渲染一幅再保存一个按亚类渲染的图层文件.lyr两个成果互不干扰。用途推荐字段图例项数量典型场景省域挂图土类812宏观空间格局资源调查亚类17土壤类型精确清单田间管理土属/土种30以上农业利用建议5.3 在ArcPy里按唯一值自动生成17类配色手工配17个颜色也能做但效率低。如果要在脚本里完成思路是先读取所有唯一值再为每个值分配一个符号。ArcPy的符号化接口较繁琐常见做法是直接利用mxd的图层属性先在地图文档里设置唯一值渲染再保存为图层文件。也可以退一步在ArcMap的Symbology界面中选择Unique Values后点击“Add All Values”然后用Color Ramp快速替换。更贴近自动化的场景中我通常借助QGIS的PyQGIS库对shapefile做渲染并导出为QML样式from qgis.core import QgsVectorLayer, QgsCategorizedSymbolRenderer, QgsSymbol from PyQt5.QtGui import QColor layer QgsVectorLayer( rD:\soil_delivery\土壤类型空间分布_广东省.shp, soil, ogr ) field_idx layer.fields().indexOf(SOIL_ID) categories [] for i, val in enumerate(layer.uniqueValues(field_idx)): symbol QgsSymbol.defaultSymbol(layer.geometryType()) symbol.setColor(QColor.fromHsv((i * 30) % 360, 120, 255)) categories.append(QgsRendererCategory(str(val), symbol, f类别{val})) layer.setRenderer(QgsCategorizedSymbolRenderer(SOIL_ID, categories)) layer.saveNamedStyle(rD:\soil_delivery\soil_styles.qml)这里用layer.uniqueValues取SOIL_ID字段的所有取值QgsRendererCategory把每个值和符号绑定saveNamedStyle输出QML样式文件在QGIS中可以直接加载。然后再次确认你在代码里正确导入QgsSymbol否则会报NameError。(i * 30) % 360用色相步长30度生成一组彼此不邻近的颜色目的是让相邻类别色差尽量大。这个脚本只生成样式不修改原始几何原始shape数据不会受影响。6. 交付验收时最值得盯住的三个坑数据源、编码和定位6.1 QGIS/ArcGIS显示“无效数据源”同类问题最常见的原因是文件路径整体移动后mxd内记录的是绝对路径。解决办法是右键图层修复到新路径更彻底的办法是重新拖一次shape文件再复制符号。部署给别人前检查mxd是否勾选了相对路径保存同时将.shp四个主文件放在同一目录避免单独拷出.dbf导致属性丢失。6.2 属性表中文变成乱码如果dbf中的中文乱码先看cpg文件缺失时默认按系统代码页解析Windows是GBK而很多分发数据实际保存为UTF-8。可以在QGIS的Layer Settings里分别用UTF-8和GBK重试在ArcMap中打开dbf属性表前用文本编辑器检查cpg内容。若cpg写着UTF-8却乱码说明生成时标记可能有误把字段值导出成CSV再单独处理是最后的兜底方案。6.3 CAD定位偏差的检查顺序完成CAD自动定位后第一件事是用ID命令拾取TIF图廓角点与理论坐标比较偏差稳定在几十米多半是坐标系基准不同比如WGS84与CGCS2000在广东省范围内差异在米级。偏差如果是一个固定倍数则很可能是单位问题要么坐标系是度而CAD里按米解析要么图像分辨率是按打印比例尺计算的和实际坐标范围不一致。把shapefile中某一特征点坐标作为参考点在CAD里用ALIGN重定位一次即可。验证时把图层和TIF都加载到QGIS叠加行政边界看轮廓是否重合如果不重合就先检查坐标系是否一致再检查TFW的像素尺寸是否正确。本文还有配套的精品资源点击获取
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。