安全的地图,平安的2024!

明天是除夕。过了17年的法定假期,2024年不法定了。时代总是在前进,过程中走走停停,变化常在,不变倒是罕见。

2024年,全球注定还会有大事儿发生。这个注定背后,有太多不稳定的因素在奔流着。本来我觉得特朗普同志是不是会卷土重来将是个巨大的不确定,结果呢?谁会二度成为白宫的主人反而成了确定性比较高的一件事。其它的?真的很难讲。比如,金价会不会继续上涨?A股还会不会跌?

全球今年居然有60多个国家和地区将要进行最高领导人或者最高议会选举。除了川建国同志,大部分国家谁会主政,我们着实也不关心,或者说,绝大部分『领导』,我们也不认识。现在看来,这其中的一些选举可能会对全球政治走向产生显著影响。例如,俄罗斯的总统选举,欧洲的议会选举等。数据记者Katharina BuchholzStatista上制作了一张超级选举年的地图,将今年已经举行和将要举行大选的国家标识为蓝色。

一共有62个国家和地区今年举行大选,这样的地图做起来非常简单,但是发布在中文互联网上就要谨慎一点了

在国内媒体上发布的地图,一定是要小心的。尤其是体制内单位发布的公开信息,如果处理不当,会给发布者带来想不到的麻烦。小编们要是对地图规则不熟悉,手里也没有什么趁手的工具,即便就是复制上面这张朴素的世界地图,也会让你小编们绕道而走。

可是地图又具有那么多的故事性!地图可以看作是最被常常用到的基础可视化图表。因为一点点边界表达的风险,就退避三舍,这是不是有点因噎废食呢?

其实全球地图的绘制使用,当代表国家一级行政单位发布信息时,世界上很多很多的政府都是很谨慎的。这种情况也不是就咱们过度要求。但没有到达这个层级的信息,比如一篇公号文章,一个短视频配图,只要处理好几个关键的点,大体安全无虞。最重要的是对岸湾湾不能出错,第二不能用麦克马洪线画中印边境线,第三最好将南海诸岛都绘制出来。其它国家的形状,用最常用的数据就可以了。

比如开源非商用的世界地图GADM,因为包含了六个级别的行政区划——国家(0 级)、州/省/同等级别(1 级)、县/区/同等级别(2 级)、乡/市/同等级别(3 级)以及更小的 4 级和 5 级,定期更新(最新版本是2022年的4.1)而深受世界地图的爱好者喜爱。当然了,GADM绝对不代表权威地图,因为行政区划的边界,在全球很多国家,并没有一个精确的划分。更何况全球有国土争端,边境冲突的地区太多了,谁敢说就一定能代表权威呢?

40万个行政区划全部绘制出来的世界地图

在GADM中,中国的边界就肯定属于『问题地图』。

如果将上图GADM中的虚线和我国官方发布的全国地图叠加,你就会看到常见的问题地图的『问题所在』。

你既想使用正确的中国地图,又要借力人家GADM已经整理好的全球各个国家的行政区划,怎么办?曾经这都是专业GIS工作者才能驾轻就熟的工作,有了ChatGPT,GIS的专业性绝对可以平权、普世化。

找一份官方认可的中国行政区划地图,你可以去自资部的官网下载。本文例子,使用的是遥感之家的锐多宝(宝哥)制作的2023年初全国行政区划矢量文件。现在就看你能不能将这个任务用简单的语言描述清楚,组成一个prompt了。其实最核心的就是用中国官方认可的数据替换GADM中中国部分,并解决边界冲突

我在准备这篇文章的时候,突然很好奇,如果将ChatGPT生成的代码『回喂』给ChatGPT,让它根据这段代码生成prompt会是怎样来写的?结果如下:

编写一个Python脚本,使用geopandas库,来处理全球地理数据和中国的特定地理数据。这个脚本应该包含一个函数,该函数执行以下步骤:
  1. 定义一个接收四个参数的函数:全球地理数据的路径,中国地理数据的路径,输出文件的路径,以及中国的国家代码。
  2. 使用geopandas读取全球地理数据(GPKG格式)和中国地理数据(Shapefile格式)。
  3. 在全球数据中,检查是否存在中国的记录,通过匹配提供的国家代码(例如,"CHN")。如果没有找到,打印一条消息说未找到并返回。
  4. 从中国数据中提取中国的多边形。
  5. 查找与中国多边形相交但不是完全相同的邻国记录。
  6. 对于每个找到的邻国,计算与中国的交集,并从邻国的多边形中减去与中国相交的部分。
  7. 更新全球地理数据集中的邻国边界。
  8. 替换全球地理数据集中中国的多边形为新的多边形。
  9. 将修改后的全球地理数据保存到新的GPKG文件。
  10. 打印一条消息,说明中国的多边形已经更新,邻国边界已经调整,并且文件已保存到指定的输出路径。
最后,设置适当的参数路径,并调用该函数。

看看人家写的,确实是细致、具体,没有歧义。用文字精确的描述任务,现在看来,这将是未来职场第一生产力。但这个能力或者技巧也没有那么不可掌握,同样的,怎么写prompt,ChatGPT也是一个好老师。

用生成的代码运行一下,随机配置一下其他国家的颜色,增加一个闪亮的九段线图层。一份安全的世界地图就制作好了。

剩下的故事,你想制作什么样的世界专题地图,都顺理成章了。只要你能找到对应的国家的数据即可。比如上面选举地图,从anchorchange获取最新的选举时间列表,QGIS中做个join操作,三下五除二的事儿。

再做一张G7国家和新金砖国家的地图。

请建立一个表格,第一列命名为"简写代码",第二列为"国家",第三列为"编号"。用G7国家和金砖国家、新金砖国家填充这个表。请注意新金砖国家为Egypt, Ethiopia, Iran, Saudi Arabia and the United Arab Emirates 。请为G7国家用G来代表编号字段,金砖用B,新金砖用N。简写代码为这些国家国际上常用的三英文字母。

再来一次Join。是不是很轻松,你也想试试?

不论您的目标是描绘全球贫富差异还是气候变迁的影响,只要掌握了必要数据,您便能安全且有效地构建地图。在数据工作者眼中,数据才是王道,是最有价值的资产。地图作为一种强有力的视觉媒介,它能够将复杂的数据以直观的方式展现出来,让你的数据增值!千万别因为不小心的『政治不正确』限制了您使用地图讲述数据故事的创意。通过本文,我希望能启发您,让您在遇到任何挑战时,都能让您的AI助手先行一步,为您开路。最终,我祝愿您在2024年一切安好,顺利度过!