「GIS笔记」Mapshaper文件输入命令-i(input)
文件输入(Input)是mapshaper最基本的命令,所有的数据操作均需要使用该命令。mapshaper对文件输入做了不少工作,针对不同的文件格式,会分别有不同的文件解析参数。本文做一个整理,版本基于0.6.x
,后续如果有更新,大家可以留言哈。
-i(input)参数
通常情况下我们不需要手动指定这个参数的,一般的教程里也不会用这个参数,因为默认情况下mapshaper
后面跟文件名的话,mapshaper会在解释的时候自动加上这个参数。
JSON文件可以是 GeoJSON、TopoJSON 或数据记录数组。TopoJSON 输入文件中的每个命名的几何对象都作为单独的图层导入。
注意,Mapshaper 不完全支持 M 和 Z 值的 Shapefile。如果你的shp文件中有M和Z值,数据会丢失。
默认情况下,多个输入文件是分开处理的,combine-files并merge-files除外。
选项参数
<files>
或files=
要输入的文件(空格分隔的列表)。
combine-files
将多个文件导入到具有共享拓扑的单独图层。对于生成包含多个几何对象的单个 TopoJSON 文件很有用。
merge-files
(已弃用)将多个输入文件中的特征合并到尽可能少的图层中。比较推荐的方式:使用 -i combine-files
导入文件到单独的图层,然后使用-merge-layers
命令合并图层。
snap
用于将小距离阈值内的坐标合并。这个选项主要应用在相邻多边形中的坐标有差异。捕捉距离是平均线段长度 * 0.0025。
snap-interval=
指定snap
选项的捕捉距离。
precision=
(已弃用)将所有坐标四舍五入到指定的精度,例如0.001. 建议在导出时设置坐标精度,使用-o precision=
来设置。
no-topology
跳过拓扑检查,用来加快大文件的处理速度。例如,使用-filter
的时候不需要拓扑检查,就可以使用这种方式。
encoding=
指定用于读取 .dbf
文件和分隔文本文件的编码。如果不设置encoding
选项,mapshaper 将尝试检测 .dbf
文件的编码。也可以使用 .cpg
文件设置 .dbf
文件编码。
id-field=
将TopoJSON 或者 GeoJSON中特定“id”属性的值导入。
string-fields=
将.csv
中的字段以字符串形式导入(例如 FIPS、ZIPCODE)。使用string-fields=*
将所有字段导入为字符串。
field-types=
用于指定导入分隔文本的数据类型,采用逗号分隔的字段名称列表。例如FIPS:str,zipcode:str
。可识别的类型提示包括:str
、 :string
、:num
、 :number
。如果没有类型提示,包含看起来像数字数据的文本数据(如邮政编码)的字段将被转换为数字。
csv-skip-lines=
导入 CSV 文件开头要跳过的行数。
csv-lines=
设置从 CSV 文件导入的数据记录数(默认为全部)。
csv-field-names=
逗号分隔。分配每个字段的名称列表。可以与 csv-skip-lines=1
结合使用来替换现有字段标题集中的名称。
csv-fields=
逗号分隔。设置从 CSV 格式的导入文件时需要读取的字段列表。读取文件时会过滤字段,从而减少导入非常大的 CSV 文件所需的内存。
decimal-comma
设置导入使用逗号分隔的格式化数字。如格式:(1.000,01 1 000,01均作为 1000.01 导入)。
csv-dedup-fields
对具有重复名称的 CSV 字段分配唯一名称。
csv-filter=
用JavaScript 表达式过滤CSV的数据,读取文件时会过滤记录,从而减少导入非常大的 CSV 文件所需的内存。
json-path=
指定读取JSON数据时的路径。例如,json-path=data/counties
会从数据中读取出以下结构的 JSON 对象{"data": {"counties": []}}。
name=
重命名导入的层(或层)。
示例
# 使用utf-8方式读取文件,并查看其实信息。
mapshaper countries_wgs84.shp encoding=utf-8 -info
所有文章
点击查看系列全部文章--> 「更新中」Mapshaper入门学习笔记
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。