2021SC@SDUSC 项目实训-气象数据获取

2023-11-06 01:50

本文主要是介绍2021SC@SDUSC 项目实训-气象数据获取,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2021SC@SDUSC

文章目录

  • 一、数据来源
  • 二、数据的获取


一、数据来源

根据对相关内容论文的阅读[1] Yu Zheng, Furui Liu, Hsun-Ping Hsie. U-Air: When Urban Air Quality Inference Meets Big Data. 19th SIGKDD conference on Knowledge Discovery and Data Mining (KDD 2013).
[2] Yu Zheng, Xuxu Chen, Qiwei Jin, Yubiao Chen, Xiangyun Qu, Xin Liu, Eric Chang, Wei-Ying Ma, Yong Rui, Weiwei Sun. A Cloud-Based Knowledge Discovery System for Monitoring Fine-Grained Air Quality. MSR-TR-2014-40.
[3]Yu Zheng, Xiuwen Yi, Ming Li, Ruiyuan Li, Zhangqing Shan, Eric Chang, Tianrui Li. Forecasting Fine-Grained Air Quality Based on Big Data. In the Proceeding of the 21th SIGKDD conference on Knowledge Discovery and Data Mining (KDD 2015).
结合实际情况,我计划从多种渠道获取数据来源。初步计划包括但不限于AQI实时数据,天气相关数据(风速,温度,气压,湿度),路网数据(路网密度),poi(Point of Interest兴趣点)。

二、数据的获取

本文介绍气象相关信息的获取,首先要注意到的一个关键问题就是必须要有足够的访问量!!!
否则没办法撑起项目的运行(项目的运行必须需要每小时大量气象数据的获取),在网上多方查找,找到一个比较适合的网站:https://openweathermap.org/api。经过注册成为开发者用户可以提升权限,大概允许访问量如下。还是可以基本满足项目规模需要。
在这里插入图片描述
所需要访问的API接口地址如下https://openweathermap.org/current。感兴趣的可以自己去看,可以返回非常多类型种类的气象数据,粒度也足够细,使用起来应该比较好。
下面附可以批量访问的代码。

from urllib.parse import urlencode
import random
import requests
import traceback
from time import sleep
from lxml import etree
import pandas as pd
import datetime
import json
import jsonfrom AirDeploy import settings
headers = {
输入自己的请求头,其实没有也行,这种API网址随便跑的}
points=pd.read_csv('allPos',sep='\t',header=None)#批量给出经纬度import pandas as pd
data = pd.DataFrame(data=None,columns=['temperature','humidity','windspeed'])
for i in range(len(points)):X = str(points.loc[i,0])Y = str(points.loc[i,1])url1 = 'https://api.openweathermap.org/data/2.5/weather?lat='lat = str(Y)#print(lat)url2 = '&lon='lon = str(X)url3 = '&appid=你的key'url = url1 + lat + url2 + lon + url3response = requests.request("POST",url, headers = headers)#print(response)re = response.content.decode('utf-8')jsonData = json.loads(re)#print(jsonData)data.loc[i] = [jsonData['main']['temp'], jsonData['main']['humidity'],jsonData['wind']['speed']]
data.to_csv('./input/weather.csv',index=False)

这里注意获取到的数据格式其实是json形式的,我们通过json.loads()完成编码就可以轻松通过索引访问。

这篇关于2021SC@SDUSC 项目实训-气象数据获取的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/353806

相关文章

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

MySQL 获取字符串长度及注意事项

《MySQL获取字符串长度及注意事项》本文通过实例代码给大家介绍MySQL获取字符串长度及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 获取字符串长度详解 核心长度函数对比⚠️ 六大关键注意事项1. 字符编码决定字节长度2

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

SpringBoot中4种数据水平分片策略

《SpringBoot中4种数据水平分片策略》数据水平分片作为一种水平扩展策略,通过将数据分散到多个物理节点上,有效解决了存储容量和性能瓶颈问题,下面小编就来和大家分享4种数据分片策略吧... 目录一、前言二、哈希分片2.1 原理2.2 SpringBoot实现2.3 优缺点分析2.4 适用场景三、范围分片

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat