经管之家送您一份
应届毕业生专属福利!
求职就业群
感谢您参与论坛问题回答
经管之家送您两个论坛币!
+2 论坛币
最近又用起Geoda做热点图了,这软件好处就是上手快傻瓜式,中文兼备,先不说功能没GIS多,最大的问题就是没法批量导入数据,像用BigData的模型动不动就几千个数据手一个个敲要累死,踩了一些坑总结了一套最快导入数据的方式:
1.
正常一个地图包都有 .shp,.dbf 等后缀结尾的文件,最主要的就是这两个,.shp 是地图,按内置 ID 作图,跟你的主键没关系。
.dbf 就是表单数据,可以用 wps 打开,但是用了 wps 就会导致数据类型改变,在做无用功,根本导入不进去。
注:
如果你只需要几个键的数据,在 Geoda 里添加键(变量),再用 wps 打开 .dbf 表单填充数据,单元格改成数值格式,保存就可以在 Geoda 里用了,不需要看如下教程。
2.
先下一个小巧的数据库管理软件,用来改变数据类型,不需要已经被淘汰的 access 和什么高大上的编辑器,只需要下一个 DBF Commander 即可,5 M 左右。另外还需要 Python ,后面批量生成语句用,如果你不会 Python 可以考虑 C 、Java 等马上能上手的语言。
3.
先用 DBF Commander 打开 .dbf 表单库,开始添加键,操作的时候会有没用的提示你去官网购买高级版,点否无视即可。
Python 批量拼接生成 SQL 添加键语句:
ALTER TABLE "你 .dbf 文件的完整路径" ADD 你的键名称 float(10);
举例:
ALTER TABLE "D:\Geoda\map\china.dbf" ADD Y1975 float(10);
两个地方都是需要你根据需求拼接的,注意完整路径的引号不要少了,尾部必须要有分号!另外尾部还要多生成一个换行 \n ,两个语句之间必须有空行,因为 DBF Commander 不识别连续行的 SQL ,必须有空行。
生成完了放到 DBF Commander 下面的控制台,全选点执行或者按 F5 ,键就做好了。
点开查看键结构,把表单的类型换成 dBase Plus ,就可以了,如果你不换,wps 都打不开。
4.
用 wps excle 打开 .dbf ,在键下面大批量导入数据,有两个注意点:
(1)上面说了 .shp 是按本身的 ID 来划分区域代码的,不是你的主键(主键一般是 ID 键),你改掉 ID 还是把 .dbf 的行顺序换了都没用,不要改。Geoda 这个软件原来地图包是什么顺序,你就要用什么顺序,但是主键你可以自由。
(2)注意粘贴完了,右键你刚刚粘贴数据的单元格调成数值格式的单元格,保留位数按自己的情况来,不然又回到 整型 了,浪费时间。之后保存文件。
5.
用 DBF Commander 打开 .dbf 文件,批量执行换键类型的 SQL ,还是要自己生成,拼接:
ALTER TABLE "你 .dbf 文件的完整路径" ALTER 你的键名称 F(8,2) NOT NULL;
举例:
ALTER TABLE "D:\Geoda\map\china.dbf" ALTER Y1975 F(8,2) NOT NULL;
注意和上面一样,要语句之间有空行,不然批量执行不了。
生成好放控制台跑完之后,再进键结构管理那边把你的 主键(一般是 ID ) 类型改成 Int ,这个不是必要的,不放心的可以改一下,防止出错。保存之前要改成 dBase Plus 格式。
6.
用 Geoda 打开就是做好的数据了,直接开始分析 Moran指数 之类的就完事了,如果还要添加数据,按这个逻辑来即可。
整体逻辑就是先批量在能 DBF 管理的软件里添加键,再 wps 导入,wps 会把你的数据结构给改了,你再把键的类型改成 浮点型 就可以了。
P.S.
懂 dBase 的可以用其他的数据库管理器,执行 SQL 都一样的(保证你的管理器可以批量执行 SQL),因为这个数据库太老了,很多软件也都很简陋不堪也不友好。
另外 Python 很重要,我是比较推荐的,用 Python 写比较快,即写即用,如果熟练其他语言也可以用其他的,因人而异。很多不是很方便的 计量软件 生成的数据都得靠临时写十几行代码快速汇总起来,遇到大数据的模型,人工太无力了,另外假如你的 主键 ID 和 .shp 里原本的 ID 不一样,还要编程把你的数据行数调换一下,具体逻辑就靠自己实现吧,这个学了的十几行即可。
最后吐槽下 Geoda 在导入数据太无力了,还有操作变量也很不友好。
但是 Geoda 就是轻便,傻瓜式,作图也挺好看,我个人还是比较喜欢的()
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
|