绘制广播新闻的地理空间模式,使地理空间分析师能够深入了解常见和不寻常的地理空间模式。我们决定使用名为“语调和语言的全球数据库事件”(GDELT)作为基础真理的最全面的新闻集之一。
全球新闻报道的地理
对于非地理空间专家来说,了解这种庞大知识图的地理空间模式通常很难。机器学习算法实时从网站中提取文章和功能。地理编码发动机匹配的位置提取了超过一100万个著名的地点名称。一篇文章提到像“纽约”这样的地方导致了提取的功能位置。但是,本文不必针对命名位置具体。例如,一篇有关“共同大流行对资本市场的影响”的文章。提到“纽约也不例外”。我们应该期望一些假阳性,但是所有提取的位置的总和应反映出地理空间模式,并给我们一个粗粒的概述。
使用GeoProtests API访问地理空间特征
geoprotests API提供了与抗议和示威相关的广播新闻的现成的地理空间特征。您可以使用这些地理空间功能来构建各种映射和地理空间应用。
每个地理空间结果都支持GEOJSON和ESRI功能集格式。所有端点都支持用于过滤结果的可选日期参数。为了获得最佳性能,无服务的云倒倒数计算了午夜至凌晨1点之间的最后24小时的地理空间聚集。无服务器功能保存这些地理空间功能,昨天应该是最新的可用日期。在未指定日期的情况下,我们计算过去24小时的地理空间特征。
增加您的开发环境
您需要激活快速API帐户。请查看RapidAPI Account Creation and Management Guide以获取更多详细信息。
使用您选择的武器设置基于Python的开发环境。使用PIP创建虚拟环境是一种简单的方法。
python -m venv geoint
# Linux
source geoint/bin/activate
# Windows
geoint/Scripts/activate
Python模块请求可轻松且优雅地访问HTTP功能。您需要使用PIP安装此模块。
pip install requests
访问2022年12月31日的广播新闻
热点端点提供了对统计意义的命名位置的访问权限。提到这些位置的新闻伯爵定义了重要性。
# author: Jan Tschada
# SPDX-License-Identifer: Apache-2.0
import requests
url = 'https://geoprotests.p.rapidapi.com/hotspots'
querystring = {
'date': '2022-12-31',
'format': 'geojson'
}
# Authenticate: https://rapidapi.com/auth
api_key = '<SIGN-UP-FOR-KEY>'
headers = {
'x-rapidapi-host': 'geoprotests.p.rapidapi.com',
'x-rapidapi-key': api_key
}
geojson_response = requests.request('GET', url, headers=headers, params=querystring)
geojson_response.raise_for_status()
features = geojson_response.json()
功能字典代表Geojson格式的命名位置。
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": 41415,
"geometry": {
"type": "Point",
"coordinates": [
37.6156,
55.7522
]
},
"properties": {
"OBJECTID": 41415,
"name": "Moscow, Moskva, Russia",
"timestamp": "2022-12-31T00:00:00",
"count": 77
}
}
]
}
访问汇总的广播新闻
空间聚集是六边形地理空间特征,其特定属性代表了新闻的数量,提到位置位于六角形网格单元中。空间分析师的使用映射功能可视化这些空间聚集的热点和冷点。
让我们使用ArcGIS强大的映射功能,并将汇总的广播新闻视为功能集。您需要为ESRI指定输出格式。
# author: Jan Tschada
# SPDX-License-Identifer: Apache-2.0
url = 'https://geoprotests.p.rapidapi.com/aggregate'
querystring = {
'date': '2022-12-31',
'format': 'esri'
}
headers = {
'x-rapidapi-host': 'geoprotests.p.rapidapi.com',
'x-rapidapi-key': api_key
}
esri_response = requests.request('GET', url, headers=headers, params=querystring)
esri_response.raise_for_status()
aggregated_features = esri_response.json()
汇总特征代表相应的六边形网格细胞作为Python词典。您需要将Arcgis Python模块设置为开发环境。包含的地图小部件为您的Jupyter笔记本电脑环境提供了强大的映射功能。跟随Install and Setup Guide。
# author: Jan Tschada
# SPDX-License-Identifer: Apache-2.0
from arcgis.gis import GIS
from arcgis.features import FeatureSet
# Create a FeatureSet from the features
aggregated_featureset = FeatureSet.from_dict(aggregated_features)
# Anonousmly connect to ArcGIS Online
gis = GIS()
# Create a simple map view
map_view = gis.map('Europe')
# Add the FeatureSet as a layer
map_view.add_layer(aggregated_featureset)
您应该使用专用渲染器实例来调整功能的渲染。渲染器是add_layer方法的可选参数。但是,您也可以使用其他方法来映射聚合功能。启用空间的数据帧可与地图视图结合使用绘图功能。这样您就可以轻松地定义支持自然班级休息的渲染。
# Create a simple map view
map_view = gis.map('Europe')
# Add the FeatureSet as a layer
aggregated_featureset.sdf.spatial.plot(map_view,
renderer_type='c',
method='esriClassifyNaturalBreaks',
class_count=5,
col='count',
cmap='YlOrRd',
alpha=0.35)
生产的地图显示了俄罗斯莫斯科的红点,正如我们所期望的。
。欢迎任何反馈,继续映射!
随时尝试:geoprotests API。