资讯动态

中国沙漠黄土分布shp矢量数据:从解压到QGIS坐标系转换与出图全攻略

发布时间:2026/10/27 14:25:53 来源:尧图企业网站定制
简介中国沙漠与黄土空间分布矢量数据专门面向GIS使用者与地理科研人员适合在区域自然地理研究、制图表达和课堂教学中用作基础底图。压缩包共十四个文件以shp主文件保存空间要素配套shx空间索引、dbf属性数据、prj投影定义等辅助文件整体仅1.26MB调用十分简便。目前已有1467人学习下载常见于ArcGIS、QGIS等平台直接加载使用门槛较低。数据涵盖中国沙漠分布与黄土高原分布两个专题shp图层其中沙漠数据标注为1988年版可用于不同时期对比分析投影参数齐全能够与行政边界、DEM、土地利用等数据叠加开展空间量算与制图。使用者可借此快速掌握中国沙漠和黄土的空间范围特征也可为论文插图、课程报告或科普地图提供可靠的数据支撑。1. 一份“中国沙漠黄土分布.rar”值不值得下先说结论再讲怎么用如果你正在做全国尺度的地貌分析、土地利用对比或者给论文配一张中国沙漠与黄土分布图最怕的就是找到的数据是栅格图没法按区域统计面积也没法叠加到自己的站点数据上。这份文件的关键不在于“.rar”这个外壳而在于rar包里面装的是shp矢量数据——中国沙漠分布和黄土分布都能直接拖进ArcGIS或QGIS按属性筛选、按行政区裁剪、转坐标系甚至还能进一步转成GeoJSON或3D Tiles给前端用。我拆过很多类似的“命名混乱”数据包可以负责任地说这类资源的实际价值不低但上手前有几个坑必须知道文件名乱码、坐标系丢失、属性字段是拼音缩写这些都会让第一次打开的人直接翻车。这篇文章就从解压开始讲到坐标转换、属性筛选和出图把这份矢量数据真正变成能交付的成果。2. 先别双击rar把shp包的组成和坐标系彻底搞清楚很多人拿到“中国沙漠黄土分布.rar”的第一反应是用Windows自带解压工具解压然后直接拖进ArcMap。结果要么提示“无法识别数据”要么图形跑到海上去要么字段全部是问号。这些问题都不是数据本身坏了而是没有搞清楚shp矢量包的结构和坐标系信息。2.1 rar包里的数据到底是什么shp、dbf、shx、prj之间的关系用7-Zip打开这个rar压缩包看到的不是单个“中国沙漠.shp”而是一堆同名但扩展名不同的文件。常见的有.shp、.dbf、.shx、.prj、.cpg还可能带.sbn、.sbx、.ain、.aih。在GIS里这些文件是一个整体缺一不可。.shp是几何坐标文件记录每个面或线的顶点位置.shx是索引文件让软件快速定位几何.dbf是属性表存的是区域名称、面积、类型代码.prj是坐标系描述文件告诉GIS数据是经纬度还是投影坐标.cpg是编码声明文件比如UTF-8或GBK。打开前务必让这些文件待在同一个文件夹不要只复制.shp“单独一个文件”。我见过有人把.shp单独拷走结果ArcGIS提示“打开要素类时出错”这是最典型的半残数据事故。2.2 从prj文件判断坐标系CGCS2000和WGS84的识别方法打开前先看一眼.prj文件用记事本就能看。国内发布的shp矢量数据常见的坐标系有两种一种是WGS84地理坐标系EPSG编码是4326另一种是CGCS2000国家大地坐标系地理坐标系的EPSG编码是4490投影坐标则可能是4547、4548之类的3度带或6度带。判断方法很简单如果prj文本里有“GCS_WGS_1984”字样就是WGS84经纬度如果出现“CGCS2000”或“China Geodetic Coordinate System 2000”就是国家大地坐标系。这份数据里沙漠和黄土分布很可能使用经纬度存储但保不准图层曾经被人重投影过。我一般会打开QGIS的“图层属性-信息”面板或者用ArcCatalog查看“源”选项卡确认坐标系之后再往下走。如果显示“Unknown”就要小心后面第4章会讲怎么补救。2.3 字段名读懂一半就够了birds4ze、面积、类型代码怎么理解老一批国内shp数据的属性表字段名很多是拼音缩写或内部编码比如“MC”是名称“MJ”是面积“LXDM”是类型代码。标题里的“birds4ze”大概率是这套数据在某平台上的上传者标记或数据集内码不是图层含义不必过度解读。真正要做的是把.dbf属性表打开按类型字段看看值是什么比如沙漠分布可能分成流动沙漠、半固定沙地、固定沙地黄土分布可能按黄土地貌区或地层类型分类。字段里如果有“面积”字段先看一下单位是平方米还是平方千米后面做统计才不会出错。我习惯在QGIS里右键图层“打开属性表”把所有字段名和值扫一遍再用中文把关键字段重命名一遍另存为一个新文件避免反复回去查拼音缩写。3. 解压环境与编码重建让rar里的shp不乱码、不丢件解压这事听起来太基础但恰恰是翻车率最高的环节。尤其是带中文文件名的rarWindows双击解压容易出现文件名乱码如果压缩包本身还被第三方网盘二次加工过解压出来的shp甚至可能是0字节。下面这几个步骤是我每次拿到数据都会走一遍的能省下后面两个小时。3.1 用7-Zip或命令行解压而不是双击Windows资源管理器Windows资源管理器的内置解压遇到中文编码较老的rar有一定概率把文件名解成“锟斤拷”风格。常见做法是装一个7-Zip它能处理中文名和旧式rar版本。用7-Zip打开压缩包选中所有文件右键“解压到指定文件夹”。这样操作后文件名是原样解出来的不会被系统重新编码。命令行场景下也可以直接用7-Zip的命令行工具完成解压7z x 中国沙漠黄土分布.rar -oC:/gis_data/china_desert/ -y这条命令用7-Zip解压压缩包到指定目录-y是遇到重名自动覆盖。解压完成后建议马上用dir或ls命令检查文件大小ls -lh C:/gis_data/china_desert/如果发现某些文件体积是0字节说明压缩包本身传输损坏或下载不完整不要继续操作直接重新下载原始rar文件。我一般会同时对比压缩包内文件个数和解压出来的个数少了任何一个后续切片、建索引、拓扑修复都会牵连出错。3.2 编码问题cpg文件与dbf中文乱码的两种解决办法解压完成后把shp拖进ArcGIS或QGIS最常遇到的坑是.dbf里的汉字字段变成“”或者一团乱码。原因通常是数据作者用旧版桌面软件生成数据时字段编码存成了GBK或ANSI而QGIS默认按UTF-8读取。解决方法有两个一是打开QGIS设置里的“矢量数据源编码”把默认编码改成GBK或System二是查看或新建一个.cpg文件。我常用的操作是打开QGIS的图层属性在“数据源”选项卡里直接把“编码”从UTF-8改成GBK属性表立刻正常。用记事本手动创建的cpg文件里只写GBK两个字母保存成和shp同名后缀为.cpg的文件也能强制软件按GBK读。用脚本自动处理一批数据时我更喜欢直接改cpg文件省得一份一份手动改设置。3.3 用ogrinfo做完整性校验别等拖进软件才发现少文件正式打开前还有一个更靠谱的命令行校验方法用GDAL自带的ogrinfo工具检查shp能否正常读取。ogrinfo -so C:/gis_data/china_desert/中国沙漠.shp如果命令能输出图层名称和要素个数说明几何文件和索引完整如果报“Unable to open datasource”就要排查是否缺失.shx或.prj。-so参数是只读摘要不加载全部要素检查速度非常快。这是我排查shp文件最快的方式比反复启动ArcGIS要省时间。4. 把沙漠黄土分布转成你要用的坐标系和格式导出、投影与属性筛选到这一步数据已经能正常打开和显示了。接下来的核心是让它真正为你所用。不同项目的需求完全不同有人要WGS84经纬度的GeoJSON有人要CGCS2000投影坐标做面积统计还有人要转成TXT文本给外部程序读。这一章把这些操作一次讲透。4.1 坐标系转换CGCS2000、WGS84与WebMercator之间的切换当多个数据源叠加时坐标系不一致是万恶之源。比如把这份沙漠分布shp和谷歌影像叠加谷歌影像通常是WebMercatorEPSG:3857而这份数据可能用CGCS2000经纬度EPSG:4490存储两者不转换直接叠加图形会偏到完全对不上。在QGIS里转换坐标系常见做法是右键图层“导出要素-另存为”然后在“CRS”选项里选择目标坐标系。也可用GDAL命令行做批量转换ogr2ogr -s_srs EPSG:4490 -t_srs EPSG:3857 -overwrite 输出.shp 输入.shp-s_srs是指定输入数据的坐标系-t_srs是目标坐标系-overwrite允许覆盖输出文件。需要说明的是如果数据本身的prj文件缺失-s_srs就是你补全坐标系的关键入口。做全国尺度的分布展示我一般转EPSG:3857做面积统计和拓扑分析转成Albers等积投影更合适比如EPSG:102025或自定义中央经线。4.2 把shp转成GeoJSON、WKT和TXT三种场景对应的导出方式网页开发或做Leaflet、Mapbox可视化shp格式不够通用GeoJSON最合适。QGIS导出时选“GeoJSON”格式即可。但在命令行或批处理场景我更常用GDAL的格式转换ogr2ogr -f GeoJSON 中国沙漠.json 中国沙漠.shp导出成WKT文本给Python或数据库用则可以用这段Python脚本import shapefile from shapely.geometry import shape sf shapefile.Reader(中国沙漠.shp) for feat in sf.shapeRecords(): geom shape(feat.shape) wkt geom.wkt attrs feat.record.as_dict() print(wkt, attrs.get(MC, ))这里用pyshp读取shp的几何和属性再用shapely生成WKT。attrs.get(MC)是取拼音缩写字段“MC”的显示名称具体字段名要以你打开属性表看到的实际字段为准。把字段名改成你数据里实际存在的名称即可。用于给外部程序当数据交互格式时我会额外加一步把WKT里的坐标保留小数点后6位避免文件过大。4.3 属性筛选与面积统计只保留需要的地区全国范围的数据往往太大。想做黄土高原范围内分析就要按区域字段筛选子集。在QGIS的“按表达式选择要素”里可以写名称 LIKE %黄土高原% AND 面积 1000如果字段名是拼音缩写也有对应写法LXDM IN (流动沙漠, 半固定沙地)执行后右键图层“导出-保存所选要素为shp”生成子区域数据。面积统计这一步要特别留意坐标系。直接统计经纬度坐标的shp面积结果单位是平方度不是平方米。必须先把图层转成等积投影再打开“字段计算器”用$area计算面积。我一般会复制原始图层转出投影版再计算面积原始数据保持不动这是留后悔药的习惯。5. 避坑从解压到出图我踩过的五个常见问题这一章是纯踩坑记录。前四章的操作里每一步都隐藏着“看起来成功但实际上数值错误”的隐患。下面五条都是这个数据集场景下最容易遇到的问题按“现象、原因、解决”的顺序写。5.1 解压时提示rar文件头损坏但压缩包能打开现象双击压缩包能看到文件列表也能预览但解压到一半弹出“文件头损坏”。原因文件在网盘传输时被二次封装或截断尤其大文件极易出现。解决更换解压工具为7-Zip重试如果同样报错把压缩包重新下载一次。需要注意的是不要只下载“简介”里的描述文件要下载真正的rar主文件下载完成后对比文件大小是否和页面标注的一致。5.2 打开shp后图形全部挤在一起或显示为空现象QGIS画布能加载图层但缩放显示要素非常密集或根本看不见。原因数据坐标是简单平面坐标如没有带号或单位混乱而项目设置为地理坐标系。解决使用图层“导出另存为”并重新指定正确坐标系把数据重新投影到当前项目坐标系。常见做法是先用ogrinfo检查数据的边界范围如果数值在几十到几百之间大概率是投影坐标如果数值是106.5、37.2之类的纬度经度格式才是经纬度坐标。5.3 属性表汉字全部变成问号现象区域名称字段显示“”或者“乱码”但字母和数字正常。原因dbf文件是用GBK/ANSI编码写入的软件默认按UTF-8解码。解决在QGIS图层属性里把编码改为GBK或用记事本创建cpg文件声明编码。之后不管换电脑还是换软件cpg文件都会让编码稳定下来不用再手动改。5.4 面要素边界出现“飞线”和细长条面积统计明显不对现象渲染后图形边缘出现跨越整个屏幕的细线或者计算面积时个别要素面积为负。原因数据手工矢量化产生自相交或重复节点。解决用QGIS的“修复几何”工具处理或用GRASS的v.clean工具v.clean inputdesert outputdesert_clean toolrmdangle,rmduplicate threshold0.01这里的tool参数指定清理动作rmdangle删除悬线rmduplicate移除重复顶点。处理后再看一眼拓扑。我在交付前总会强制跑一遍修复省得验收时被尼日利亚似的飞线图吓到。5.5 Windows解压后文件名变成“锟斤拷”或者无法删除现象解压出来的文件名是乱码打开软件找不到对应图层。原因压缩包内编码与本地系统编码不一致Windows资源管理器按本地ANSI转码导致。解决直接用7-Zip的“重命名”功能把乱码文件名改掉或者重新解压到纯英文或数字目录比如D:/gis_data/desert_v1避免中英文混编目录带来的路径问题。之后的处理、转换、保存全在这个路径下执行能规避大量软件对中文路径的兼容性问题。6. 进阶用法把沙漠黄土分布做成一张能交付的专题图数据清洗完之后下面的操作是很多人实际交付时要做的把沙漠面积分布和黄土分布叠加到底图上生成一张图例清楚的专题图或者转成3D瓦片给Web端用。6.1 样式渲染把两类分布明显区分开在QGIS中右键图层“属性-符号化”沙漠分布选择“分类”渲染按“类型代码”字段分类不同沙地类型用深浅不同的黄色系黄土分布图层叠加为半透明填充用棕橙色系。注意把沙漠图层放到黄土图层下面否则两类数据重叠时浅色沙漠会被深色黄土盖住。比例尺和指北针在打印布局里加上输出分辨率建议设置300dpi以上否则打印出来边缘是锯齿。输出之前记得开“地图渲染-缓存”检查一遍有没有碎线头。6.2 把shp转成3DTiles给WebGIS前台提供带属性查询的数据如果是做三维WebGIS项目需要把这份shp数据转成3DTiles格式。常见做法是先用QGIS导出为GeoJSON或glTF再通过CesiumLab或FME等离线工具转换成3DTiles瓦片。转换前务必保证坐标系为EPSG:4326或EPSG:4978并确保几何无拓扑错误否则瓦片生成时会碎片化严重。转换完成后在前端通过Cesium的Cesium3DTileset加载const tileset await Cesium.Cesium3DTileset.fromUrl(data/3dtiles/tileset.json); viewer.scene.primitives.add(tileset);这段代码关键只有一个参数就是tileset.json的路径。浏览器加载后沙漠和黄土的面要素会以三维瓦片形式叠加在球体上点击可以高亮并弹出属性信息。我从这套流程之后每次批量下载shp数据都会先跑一遍编码检查再进生产流程包括查看cpg、核对坐标系和修复几何这已经是习惯动作。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑