行政区划数据过时了怎么办?阿里云DataV带你玩转最新GeoJSON

GIS领域,行政区划数据的准确性至关重要。而且,GeoJSON格式在地理信息处理中扮演了重要角色。不过,现有的行政区划数据存在过时等问题,这形成了一个明显的挑战。

GIS中的行政区划数据重要性

GIS在众多领域内发挥着关键作用,尤其在城市规划与资源管理等领域。各国都将行政区划资料视为基础信息。以我国为例,在土地资源管理中,精确的行政区划资料对资源的精确分配极为关键。这些资料揭示了地域边界和人口分布等状况。而且,各地会根据实际情况对行政区划进行修改,比如新城市区域的划分,这使得现有数据容易过时。

在使用GIS分析数据的过程中,行政区划信息至关重要。以研究交通流量为例,必须参考行政区域的数据。一旦数据出现误差,分析结果就会失准,甚至可能对决策造成误导。

网上现有数据的问题

网络上的行政区划信息多数已经过时。比如,有些地图查询网站,资料已有数年没有更新。这些平台所显示的行政区划划分标准已经不再适用。另外,外国提供的信息对于国内用户而言,可能涉及到领土争议的敏感区域。例如,美国的一些地理信息系统数据可能包含有争议的领土内容,使用时必须小心。

除此之外,海外数据存在格式不统一、信息不齐全等问题。看似是免费的资源,但在实际运用中却常常发现无法满足我们的需求。这些数据与我国的行政区划标准不相符,导致在国内无法有效应用。

DataV简介

阿里云推出了DataV这款可视化工具,它主要用于深入分析业务数据与地理信息的结合。许多企业在面对大数据可视化需求时,更倾向于选用DataV。DataV以其操作简单、拖拽即用的优势广受欢迎。借助DataV,企业能快速将业务数据与地理位置信息相结合,用于内部展示。

用它,用户能体验到极大的便利。比如,一家销售公司若想展示各地销售情况,可以利用DataV工具将销售数据与行政区域信息结合起来。而且,它简化了操作流程,即便是非专业人士也能轻松上手。这样一来,GIS数据的可视化在企业中的应用就更加普及了。

GeoJSON的特点

GeoJSON是一种独特的地理空间数据交换格式,详细阐述了多种JSON对象及其组合方式。自2016年8月该规范被确立,它便对地理数据处理流程进行了规范化。它如同连接不同地理数据使用者的桥梁。

该系统以WGS1984为地理坐标的唯一基准,并采用十进制计量。在呈现地理信息时,不同几何图形各施其职。比如,多边形在绘制国家或省界方面特别适用。它能够精确地界定行政区域的边界。

与其他格式关联

TopoJSON是GeoJSON的一个变种。它在文件大小方面更胜一筹。它不仅保证了数据的完整性,还能使文件变得更小巧。这对存储和传输工作极为有利。

GeoJSON能够被转换成多种格式,诸如shp、csv、kml等。在GIS的操作流程中,不同格式发挥着各自的作用。以GeoJSON转为shp格式为例,这样处理后在ArcGIS等专业软件中的应用就变得更为便捷。

GeoJSON行政区划数据提取

DataV.GeoAtlas具备提取GeoJSON行政区划边界的功能。对于需求不大的情况,比如获取区县级的边界数据,它特别合适。此外,借助映射表可以辅助提取区域的adcode。在用GeoPandas处理GeoJson数据时,可能会遇到编码难题。尤其在Windows系统上,若数据存储采用ANSI编码,容易出现问题。这时,只需将编码调整为UTF-8,问题就能得到解决。

import requests
import os
def get_json(save_dir, adcode):
    # 获取当前地图轮廓
    base_url = 'https://geo.datav.aliyun.com/areas/bound/' + str(adcode) + '.json'
    full_url = 'https://geo.datav.aliyun.com/areas/bound/' + str(adcode) + '_full.json'
    base_r = requests.get(base_url)
    if base_r.status_code == 200:
        cur_obj_name = base_r.json()['features'][0]['properties']['name']
        print(cur_obj_name)
        cur_file_dir = os.path.join(save_dir, cur_obj_name)
        if not os.path.exists(cur_file_dir):
            os.mkdir(cur_file_dir)
        base_json_file = os.path.join(cur_file_dir, str(adcode) + '.json')
        with open(base_json_file, 'w') as file:
            file.write(base_r.text)
    # 获取当前地图子地图轮廓
    full_r = requests.get(full_url)
    if full_r.status_code == 200 and 'cur_obj_name' in vars():
        full_json_file = os.path.join(cur_file_dir, str(adcode) + '_full.json')
        with open(full_json_file, 'w') as file:
            file.write(full_r.text)
        for item in full_r.json()['features']:
            chadcode = item['properties']['adcode']
            if chadcode == adcode:
                pass
            else:
                get_json(cur_file_dir, chadcode)
if __name__ == "__main__":
    get_json('D:\DataV', 100000)

在实际操作中,以一个负责编制地方城市规划的小团队为例,若他们需要运用县级政府提供的数据来预判规划的未来走向,他们就可以利用那些工具和方法来提取和分析这些数据。

发表评论