在时空大数据挖掘(STDW)领域中,城市的结构数据一直是其中的重要一环。
今天我们就来一起看看如何快速获取你想要的城市的基础数据吧!
如果小曦有讲的不清楚的地方,还请留言告知。
以下面城市为例,接下来,将带大家实现对加拿大多伦多市城市结构信息的提取。在数据处理部分,我们将考虑通过API下载得到的.csv数据分成road和land patterns.
目录
1.1.1在OpenStreetMap中查询研究所需的城市:
1.1.2应用wikidata在https://overpass-turbo.eu/中请求城市边界osm数据,可以将结果保存为osm文件。
1.1.3将geojson转shp,可以在http://geojson.io/#map=2/20.0/0.0网站导入geojson文件,将文件导出为shp。
1.1.4从OpenStreetMap中获取城市路网和土地使用信息
Toronto
城市边界shp提取
1.1.1在OpenStreetMap中查询研究所需的城市:
在标签中找到’wikidata’ :
1.1.2应用wikidata在https://overpass-turbo.eu/中请求城市边界osm数据,可以将结果保存为osm文件。
数据请求脚本如下图:
点击“运行”确定城市区域。接着,点击“导出”,并根据需求导出相应的数据格式。
1.1.3将geojson转shp,可以在http://geojson.io/#map=2/20.0/0.0网站导入geojson文件,将文件导出为shp。
点击左上角的Open打开前一步骤中下载的数据。
最后点击Save__Shapefile得到相应数据的压缩包。解压后数据如下右图。其中POINT指的是图中Toronto城市那一点的地理信息,下面POLYGON(未重命名前)是多伦多市的全部范围。
1.1.4从OpenStreetMap中获取城市路网和土地使用信息
(1)根据城市名称获取城市ID
进入http://www.overpass-api.de/index.html
点击第二栏的Query -> Query and Convert Forms,如下图所示。
根据中间图所示,点击“获取Overpass API”得到old_Toronto.interpreter文件。用记事本打开(如右图得到<relation id="2989349">)
(2)根据城市ID获取路网信息
在输入框中输入代码,其中ref的后七位用前面的id替代。
点击Query,下载名为interprept的文件即可,该文件即是路网数据。
(3)Python获取城市数据
将interprept.interprept文件重命名为old_Toronto.osm(经查看其数据格式符合osm2gmns包的处理格式要求)。
(4)数据可视化
我们在https://kepler.gl网站中打开file中的三个文件,区域信息如下图所示。
将数据导入至GEE并提取对应区域的有关波段数据
1.2.1数据加载
打开并登入GEE账户,在Assets中New>Shape file;上传1.1中处理得到的.shp等4个数据文件。
加载数据
,而后由此代码Map.addLayer(ROI, {}, 'ROI');在地图中加载城市。
后续,小曦将在GEE上对实验分析区域做进一步细致的实操。希望今天的分享能给你带来帮助。
我是小曦,一位努力成长的Up,期待与大家一同进步!