前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么你的shp文件字段名那么短?

为什么你的shp文件字段名那么短?

作者头像
数据处理与分析
发布2022-11-18 15:04:09
1.2K0
发布2022-11-18 15:04:09
举报
内容介绍

经常会有朋友问:为什么自己的shp数据,字段名只能放三个汉字;而别人的shp数据,字段名能取四五个汉字?

为什么呢?同样都是shp,怎么还长短不一了呢? 本篇推送,将讲一讲:短的为什么短?长的为什么长?以及怎么把短的变长?

shp是个啥?

shp是一种最常见的地理数据格式,大多数人对这种格式都不陌生。

关于shp的详细介绍,可以自行前往这个地址去看。 https://qa.nsidc.org/sites/nsidc.org/files/files/noaa/iicwg/1999/shapefile.pdf

看英文不习惯的话,也可以看翻译好的中文版。 https://blog.csdn.net/qq_35732147/article/details/82380610

shp文件组织

从上面俩网址的内容中,我总结一下:

shp格式不是一个文件,是一组文件。shp是由多个文件组成的(这几个是必须的):

  • .shp – 主文件,存储几何实体;
  • .shx – 索引文件,存储几何实体索引;
  • .dbf – dBase数据库,存储属性信息。

除了以上三个文件,还可以有其它文件的支持(这些是可选的):

  • .sbn 和 .sbx–;
  • .cpg – 文件编码信息;
  • .prj – 坐标信息;
  • .shp.xml – 元数据;
  • ……

一份完整的shp数据,必须要包含shp、shx、dbf三种类型的数据。如果在工作中收到了少于3这三个文件的shp数据,直接把本文发给对方就行。如果少了坐标定义信息,直接把本文发给对方就行(少了prj文件)。如果shp数据打开乱码,直接把本文发给对方就行(可能是少了cpg文件,默系统默认编码跟文件编码不一致)。而有些shp数据的字段能放五个汉字,有些只能放三个,问题的关键就在这个cpg(文件编码类型里)。

编码

在国内,经常会用到的编码类型有这么两种种:utf8、gbk。

在前面的内容中介绍过:shp数据的属性是存在.dbf文件中的。dbf类型的文件字段名长度最长只能有10个字节。

utf8编码的话,一个字母占一个字节,一个汉字要占3个字节; gbk编码(也就是gb2312、cp936)的话,一个字母占一个字节,一个汉字要占2个字节。

经过上面的介绍,相信大家基本上就能明白:为什么有些shp字段名是中文,可以放五个汉字(gbk,五个汉字恰好10字节);有些shp字段名是中文,却只能放三个汉字(utf8,三个汉字占9字节)。真正的原因就是:编码不一样啊!

实操

说了这么多,来看看怎么来创建吧。以QGIS为例,我创建了不同编码的两个图层,具体如下面视频所示:

视频内容

友情提示,ArcGIS在创建shp的时候不支持设置编码。使用ArcGIS的话,可以百度下怎么修改默认编码(改注册表就行)。

总结

看到这里,相信聪明的你已经知道应该怎么做才能让shp的字段名变成五个汉字的长度。如果你觉得五个还不够,那可以用数据库,gdb的字段名可以很长很长,长到一定可以满足你的需求

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据处理与分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内容介绍
  • shp是个啥?
  • shp文件组织
  • 编码
  • 实操
  • 总结
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档