• 微信公众平台消息接口开发(32)空气质量指数查询


    微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 空气质量指数 PM2.5 
    作者:方倍工作室 
    原文:http://www.cnblogs.com/txw1958/archive/2013/05/30/weixin-if32-air-quality.html

    一、获取原版数据

    在中国环境监测总站http://www.cnemc.cn/ 可以找到全国城市空气质量实时发布平台,其地址为 http://113.108.142.147:20035/emcpublish/
    该平台由中山大学智能交通研究中心承担,下附新闻:
    2013年1月1日开始,由中山大学智能交通研究中心承担承担研发的全国城市空气质量实况发布平台在中国环境监测总站上线使用。该平台按照《环境空气质量标准》(GB3095-2012)(简称“空气质量新标准”)要求,实时发布京津冀、长三角、珠三角等重点区域及直辖市、省会城市等共74个城市、496个监测点位的二氧化硫(SO2)、二氧化氮(NO2)、可吸入颗粒物(PM10)、臭氧(O3)、一氧化碳(CO) 和细颗粒物(PM2.5)等6项基本项目的实时监测数据和AQI指数等信息。
    新闻来源显示:http://its.sysu.edu.cn/shownews.asp?id=167

    下载开始看如何抓取这个网站的数据:
    直接使用wireshark抓包
    过滤条件:ip.dst_host matches "113.108.142.147" || ip.src_host matches "113.108.142.147"

    得到的都是TCP的包?

    打开一个包的内容看一下,其实是html/xml格式的soap包,

    HTTP/1.1 200 OK
    Content-Length: 499
    Content-Type: text/xml; charset=utf-8
    Server: Microsoft-IIS/7.5
    X-Powered-By: ASP.NET
    Date: Thu, 30 May 2013 04:52:19 GMT
    
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetCityNameByPIDResponse xmlns="http://tempuri.org/"><GetCityNameByPIDResult xmlns:a="http://schemas.datacontract.org/2004/07/EnvCriteria.Model" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><a:CityInfo><a:CityCode>110100</a:CityCode><a:CityJC>BJS</a:CityJC><a:CityName></a:CityName><a:ID>1</a:ID><a:ProvinceId>1</a:ProvinceId></a:CityInfo></GetCityNameByPIDResult></GetCityNameByPIDResponse></s:Body></s:Envelope>

    看来是SOAP没有被识别,在WireShark上把20035端口加进来,进入

    Edit -> Preferences -> Protocols -> HTTP -> TCP Ports

    将20035添加进来

     这时,可以看到识别成html/xml协议了

    同时可以找到这个WebService接口

    官方接口地址为:

    http://113.108.142.147:20035/EnvPubServiceSSL/EnvAQIServeice.svc

    一切似乎很顺利,胜利在望。

    再来打开看一下soap包的内容

    拿出来分析一下:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
        <s:Body>
            <GetAllHistoryByNameAndTime0320Response xmlns="http://tempuri.org/">
                <GetAllHistoryByNameAndTime0320Result>T/eoSkC02T908BICNUxbXN6bZIWdBhoF45S5uNRQBDFc1RdekG4UNYP9Y1HAr9ZvbVYf0YYIp6Cmr6aHQmgpELOnK7hWUe0K5vDoKEb/BRPSrKEcM7zC7qc6lD5qiPrlIBeH4Dw20pt1aBj9c0t7CYRwforg3E4882URyEOS+zMo0oEewUB7Vza/zT3iWRJ9TsU3CSBCCW0wur6AySyw4O2TgoSb+0CMbtRaC+MPeKBFUtSeGY6JRKljcT+LkSmZqT2XEsJhLfbM1Pidxbh7416VgAI/6n/HwLxjaMBc2k+Sy3IljoVoZfJP9prSbtUqkWJ1eRRqSlIjCgvuonx0hcqDHkQvBIcB/3ifTwI7YB2xs26IDLEjkXvSuMBB3PZnjLMQDMn4Gp1TAcUZLImCv8huYdnqfGzmHf8Khm3MCXnrhCZUoX8tO9H+KEg/8bHOO7gMGXGV+yP8WMHvazZVLRO+OXK0rG4jlYnC0RluUNpC/mOketcu3jPlFS4dQ7qPnn8iN03pF+aeVLVrvmyU5m0IbuTf23VaxEy4/wCtW4WW5Im8kiojWs9Ocm+eYg7WQAn0PjHGMF8tPUBNYHSW/m7tm3H7jXqFXGDTdYHEvW0u1XjGSyHMXaLyrqqEI9v+sBoQ89Vzl+M1d/VnhaxFyPiGzW22Jddqg9EQ5YD+pFI=
                </GetAllHistoryByNameAndTime0320Result>
            </GetAllHistoryByNameAndTime0320Response>
        </s:Body>
    </s:Envelope>

    这个GetAllHistoryByNameAndTime0320Result 这个值如何解密?? 

    数据无法解密,不再研究下去了,有兴趣研究的可以看 http://www.newsmth.net/nForum/#!article/WebDev/24420 

    二、使用第三方接口

    PM25.in是广州BestApp工作室开发的一个空气质量数据监测产品。收录了全国74个城市,近500个监测点的实时数据(毎小时更新)。数据源于国家环保局和各地环保机构的公开数据。开发团队将所有采集的数据进行统一处理,然后再通过API的方式提供出去。接口地址:http://pm25.in/api_doc

    数据格式说明:
    PM25.in网站提供的空气质量指数实时数据来源于国家环境保护部,API返回的数据包括了以下内容:
    字段字段说明
    aqi 空气质量指数(AQI),即air quality index,是定量描述空气质量状况的无纲量指数
    area 城市名称
    position_name 监测点名称
    station_code 监测点编码
    so2 二氧化硫1小时平均
    so2_24h 二氧化硫24小时滑动平均
    no2 二氧化氮1小时平均
    no2_24h 二氧化氮24小时滑动平均
    pm10 颗粒物(粒径小于等于10μm)1小时平均
    pm10_24h 颗粒物(粒径小于等于10μm)24小时滑动平均
    co 一氧化碳1小时平均
    co_24h 一氧化碳24小时滑动平均
    o3 臭氧1小时平均
    o3_24h 臭氧24小时滑动平均
    o3_8h 臭氧8小时滑动平均
    o3_8h_24h 臭氧8小时滑动平均的24小时均值
    pm2_5 颗粒物(粒径小于等于2.5μm)1小时平均
    pm2_5_24h 颗粒物(粒径小于等于2.5μm)24小时滑动平均
    primary_pollutant 首要污染物
    quality 空气质量指数类别,有“优、良、轻度污染、中度污染、重度污染、严重污染”6类
    time_point 数据发布的时间

    使用接口

    1.12、获取所有城市的空气质量详细数据
    地址 http://www.pm25.in/api/querys/all_cities.json
    方法 GET
    参数 * 无
    返回

    一个数组,里面包含目前支持的77个城市所有监测点的详细信息,一共507项,其中每项的信息有
    * aqi
    * area
    * co
    * co_24h
    * no2
    * no2_24h
    * o3
    * o3_24h
    * o3_8h
    * o3_8h_24h
    * pm10
    * pm10_24h
    * pm2_5
    * pm2_5_24h
    * position_name
    * primary_pollutant
    * quality
    * so2
    * so2_24h
    * station_code
    * time_point

    最好的方法是每小时同步这个接口一次,把数据存入本地数据库,再进行分析。

    三、效果演示

    香港空气污染指数 HongKong Air Pollution Index  

    =============================================================

    关注豆立方(账号BeanCube)方法:
    1. 依次进入以下路径:朋友们—>添加朋友—>搜号码,输入beancube,不区分大小写,点击查找,然后点击关注。
    2. 扫描二维码:

     

  • 相关阅读:
    腰围2尺1,2,3,4,5,6,7,8寸各自等于是多少厘米/英寸(对比表)
    Android开发模板------自己定义SimpleCursorAdapter的使用
    怎样在多线程中使用JNI?
    UVa753/POJ1087_A Plug for UNIX(网络流最大流)(小白书图论专题)
    图解iPhone开发新手教程
    Why Hadoop2
    读完了csapp(中文名:深入理解计算机系统)
    hadoop备战:一台x86计算机搭建hadoop的全分布式集群
    Win7 公布网站 HTTP 错误 404.4
    Dump 文件生成与分析
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467716.html
Copyright © 2020-2023  润新知