做GIS这行久了,谁还没遇到过几个让人头秃的格式问题?
前两天有个刚入行的小兄弟,急匆匆跑来找我。
说他手里有个geo文件,死活打不开。
说是甲方给的,说是什么“标准格式”。
我一看,心里就咯噔一下。
这年头,纯geo后缀的文件其实挺少见的。
多半是GeoJSON的简写,或者是某个小众软件生成的临时文件。
很多新手朋友一遇到这种情况,第一反应就是百度。
结果搜出来的全是“geo文件怎么转”这种泛泛而谈的回答。
看着就头疼,对吧?
今天我就把压箱底的干货掏出来。
不整那些虚头巴脑的理论,直接上实操。
首先,你得搞清楚,这到底是个啥文件。
别急着转,先看看内容。
右键点击那个geo文件,选择“用记事本打开”。
如果能直接看到类似JSON的大括号,里面全是经纬度坐标。
那恭喜你,这大概率就是GeoJSON。
这种文件最好转,现在主流的GIS软件都支持。
比如QGIS,免费开源,不用花一分钱。
打开QGIS,直接拖拽进去就行。
如果打不开,或者是一堆乱码。
那可能是Shapefile的一部分,或者是其他二进制格式。
这时候,千万别乱试转换器。
容易把数据搞坏,到时候哭都来不及。
我有个客户,去年因为乱转格式,把整个项目图层弄丢了。
找了三天才恢复,差点被辞退。
所以,第一步,确认格式。
第二步,找对工具。
如果确实是GeoJSON,想转成Shapefile。
QGIS里有个“另存为”的功能。
右键图层,选择导出,格式选ESRI Shapefile。
路径选好,点击确定。
大概几秒钟,你就得到了一个标准的shp文件。
这时候,你会得到三个文件,shp、shx、dbf。
别问为什么是三个,问就是历史遗留问题。
只要这三个在一起,就能正常显示。
还有一种情况,geo文件其实是GeoTIFF的误称。
虽然少见,但也不是没可能。
如果是这种,你需要用ArcGIS或者QGIS的栅格处理工具。
选择“转换”->“栅格”->“栅格转其他格式”。
这个过程稍微慢点,耐心等一等。
别中途关掉软件,不然前功尽弃。
这里有个小坑,大家注意一下。
有些geo文件编码不是UTF-8。
导入QGIS的时候,中文属性可能会变成问号。
解决办法很简单。
在导入对话框里,手动选择编码格式。
通常选GBK或者UTF-8就能解决。
要是还不行,那就用Python脚本跑一下。
虽然听起来高大上,但其实代码很简单。
import geopandas as gpd
df = gpd.read_file('your_file.geo')
df.to_file('output.shp', driver='ESRI Shapefile')
复制粘贴,改个文件名,运行。
搞定。
当然,如果你实在搞不定这些软件。
网上也有在线转换工具。
比如CloudConvert或者Mapshaper。
上传文件,选择目标格式,下载。
方便快捷,适合小文件。
但是!
千万注意数据安全。
如果是涉密项目,或者包含敏感坐标。
绝对不要用在线工具。
泄露了可是要担责的。
这点必须强调,别嫌我啰嗦。
我见过太多因为贪方便,导致数据泄露的案例。
最后,总结一下。
geo文件怎么转?
核心就两点:识破真身,选对工具。
别盲目下载各种“万能转换器”。
那些软件大多带毒,或者功能鸡肋。
老老实实用QGIS,或者写两行Python代码。
这才是正道。
希望这篇文章能帮到你。
要是还有搞不定的,可以在评论区留言。
我会尽量回复。
毕竟,大家都不容易,能帮一把是一把。
记住,数据无价,操作需谨慎。
祝大家好运,少加班,多摸鱼。
哈哈,开个玩笑。
干活去吧,别愣着了。