可视化城市可达性
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
参考教程:https://gitee.com/ni1o1/pygeo-tutorial/blob/master/15-.ipynb
可达性的度量方法:用路网节点到兴趣点的距离来度量;
(后期打算用每个小区到兴趣点的距离来度量)
提示:以下是本篇文章正文内容,下面案例可供参考
一、获取POI(兴趣点)
获取的平台:百度开放平台
import requests
import json
import pandas as pd
"""
下面是获取poi的程序
"""
def searchjson(query,region,page_num):
params ={
"query":query,
"region":region,
"city_limit":False,
"page_size":20,
"page_num":page_num,
"output":"json",
"ak": '你自己的ak'
}
r = requests.get("https://api.map.baidu.com/place/v2/search",params =params,timeout =5)
return json.loads(r.text)
pois = []
page_num = 0
while True:
print("抓取分页:",page_num)
decodejson = searchjson("医院","蔡甸区",page_num)
if decodejson.get("results"):
parks += decodejson["results"]
page_num += 1
else:
break
print("抓取结束")
df = pd.DataFrame(parks)
df.to_csv("武汉市蔡甸区医院.csv") #保存文件
二、POI数据处理
1.查看location列的格式
发现location列对应的值是str;
需要先将str转换成dict,
在提取lat(精度) 和lon(维度)
2.改变格式并生成lat lon列
import ast
for i,v in df['location'].items(): #把str转换成dict
v = ast.literal_eval(v)
df['location'][i] = v
df['lat'] =pd.DataFrame(df.location.to_list())['lat']
df['lng'] =pd.DataFrame(df.location.to_list())['lng']
df
三、可视化城市可达性
剩下的就主要就是按余庆学长的教程来
教程链接:https://gitee.com/ni1o1/pygeo-tutorial/blob/master/15-.ipynb
注意事项
1. 确定研究区域的边界
bbox = [30.43,113.8932,30.6231,114.3107] #经开区研究范围的大致经纬度,GCj-02坐标系
确定方式:
(1)确定区域
(2)导出