觀測(cè)數(shù)據(jù)處理-國(guó)控環(huán)境監(jiān)測(cè)站點(diǎn)

工作需要用到我國(guó)環(huán)境監(jiān)測(cè)站點(diǎn)的污染物濃度數(shù)據(jù)(感謝大佬的分享), 數(shù)據(jù)很全, 不過(guò)csv格式在分析的時(shí)候尤其大量數(shù)據(jù)分析的時(shí)候并不友好, 所以一般要二次處理一下

上學(xué)的時(shí)候搞過(guò)一次, 當(dāng)時(shí)為了查詢數(shù)據(jù)方便, 塞到了sqlite3的單文件數(shù)據(jù)庫(kù)里, 不過(guò)制作起來(lái)很慢(可能是我沒(méi)用并行支持好的數(shù)據(jù)庫(kù)), 近期更新了一下數(shù)據(jù)且又重新調(diào)整了一下數(shù)據(jù)處理邏輯, 這里記錄一下


主要的思路是以netcdf保存(此前做出來(lái)db之后還要再轉(zhuǎn)nc, 麻煩的很), 然后數(shù)據(jù)規(guī)模的話, 物種一共15個(gè), 時(shí)間是2014年到現(xiàn)在逐小時(shí), 站點(diǎn)大概在1000多

采用每月一個(gè)nc文件存儲(chǔ), 每個(gè)物種單獨(dú)變量, 每個(gè)變量的維度是(hour, sites)或者是(hour, cities), 因?yàn)閿?shù)據(jù)除了站點(diǎn)的還有城市的值

然后希望處理流程盡量通用一些, 以后一些其他的觀測(cè)數(shù)據(jù)也基于類似的邏輯和形式去做

那么處理流程大概是三步走

1. 制作站點(diǎn)列表

現(xiàn)有的站點(diǎn)信息文件有點(diǎn)亂, 需要制作一份完整的站點(diǎn)列表信息, 并且最好涵蓋地理位置信息和行政區(qū)信息, 以便處理的時(shí)候篩選用, 如下 (risk后續(xù)討論):

code,name,city,prov,nation,lat,lon,risk
1013A,市監(jiān)測(cè)中心(停運(yùn)150702),天津市,天津市,中國(guó),39.097,117.151,1
1014A,南口路(停運(yùn)161122),天津市,天津市,中國(guó),39.173,117.193,0

在制作過(guò)程中大概會(huì)遇到一些問(wèn)題:

  • 數(shù)據(jù)中的站點(diǎn)編號(hào)對(duì)應(yīng)的名字會(huì)變, 這里以新名字為準(zhǔn)
  • 數(shù)據(jù)中的站點(diǎn)編號(hào)對(duì)應(yīng)的經(jīng)緯度會(huì)變, 這里以新的經(jīng)緯為準(zhǔn), 但是不知道是什么原因, 是站點(diǎn)搬遷了還是老的定位不準(zhǔn)咋的, 所以基于經(jīng)緯度變化幅度(0~0.1度), 給risk(風(fēng)險(xiǎn)等級(jí))設(shè)定2-11
  • 數(shù)據(jù)中站點(diǎn)的經(jīng)緯度信息缺失, 根據(jù)名稱自己在經(jīng)緯度地圖上找的點(diǎn), risk等級(jí)設(shè)定12
  • 數(shù)據(jù)中站點(diǎn)編號(hào)對(duì)應(yīng)的我國(guó)行政區(qū)信息不統(tǒng)一, 這個(gè)比較麻煩, 有時(shí)候是叫法問(wèn)題, 有時(shí)候是到不同級(jí)別的問(wèn)題, 有時(shí)候甚至是行政區(qū)變遷的問(wèn)題, 為了保持統(tǒng)一, 我直接根據(jù)最新的shapefile地圖配合經(jīng)緯度信息標(biāo)注站點(diǎn)的行政區(qū)信息, 具體到地級(jí)市/自治州/直轄市

對(duì)于risk問(wèn)題, 穩(wěn)定的站點(diǎn)是0, 僅改名字也是0, 經(jīng)緯度信息有/無(wú)變化的設(shè)為1, 2-12如上, 目的主要是在處理的時(shí)候可以做個(gè)篩選, risk越高, 觀測(cè)結(jié)果和地理信息對(duì)應(yīng)偏差的可能性越高, 可以考慮在對(duì)比模式驗(yàn)證的時(shí)候舍去試試

2. 制作nc數(shù)據(jù)文件

由于要逐月去生成, 且為了同步初始化數(shù)據(jù)和后續(xù)更新數(shù)據(jù)的邏輯, 采用的方式是先init好這個(gè)月的文件, 然后就都是根據(jù)csv文件去update了

注意的點(diǎn)要是:

  • 每個(gè)月的文件要以這個(gè)月的sites為準(zhǔn), 不要用上一步制作的全部sites, 不過(guò)站點(diǎn)信息可以從上一步的結(jié)果里獲取, 這一步用wsl跑個(gè)bash腳本來(lái)實(shí)現(xiàn)
  • sites和cities的結(jié)果放一個(gè)文件里
  • 數(shù)據(jù)較多, 所以基于MS-MPI和mpi4py做了個(gè)并行支持, 單機(jī)4核一起跑也能快很多! 不用py自帶的多進(jìn)程是因?yàn)閙pi更熟悉...而且顯然更好使

最終得到的結(jié)果如下, 包含了站點(diǎn)信息和觀測(cè)數(shù)值

netcdf CNMEE.aqo.site-city.201808 {
dimensions:
        site = 1605 ;
        city = 367 ;
        ymdh = 744 ;
variables:
        string site(site) ;
        string city(city) ;
        string ymdh(ymdh) ;
        string site_name(site) ;
        string site_city(site) ;
        string site_prov(site) ;
        string site_nation(site) ;
        double site_lat(site) ;
                site_lat:_FillValue = NaN ;
        double site_lon(site) ;
                site_lon:_FillValue = NaN ;
        int64 site_risk(site) ;
        float AQI(ymdh, site) ;
        float PM2.5(ymdh, site) ;
                PM2.5:units = "ug/m3" ;
        float PM2.5_24h(ymdh, site) ;
                PM2.5_24h:units = "ug/m3" ;
        float PM10(ymdh, site) ;
                PM10:units = "ug/m3" ;
        ... ...

        float CO(ymdh, site) ;
                CO:units = "mg/m3" ;
        float CO_24h(ymdh, site) ;
                CO_24h:units = "mg/m3" ;
        float AQI_city(ymdh, city) ;
        float PM2.5_city(ymdh, city) ;
                PM2.5_city:units = "ug/m3" ;
        float PM2.5_24h_city(ymdh, city) ;
                PM2.5_24h_city:units = "ug/m3" ;
        ... ...

// global attributes:
                :source = "https://quotsoft.net/air/" ;
}

3. 后處理查詢腳本支持

本質(zhì)上數(shù)據(jù)整理的目的還是為了用, 查詢或者后處理等等, 目前先搞了個(gè)簡(jiǎn)單的查詢并且屏幕打印的功能

通過(guò)config.py來(lái)控制參數(shù), 如下

# coding=utf-8

name = 'test'
mode = 'slice'
sites = ['1223A', '1224A']
datehours = ['2022070100', '2022070101', '2021080100']
variables = ['PM2.5', 'O3']

后續(xù)還得持續(xù)優(yōu)化, 爭(zhēng)取把什么數(shù)據(jù)提取到nc/db/csv, 然后對(duì)應(yīng)wrf-cmaq網(wǎng)格化, 計(jì)算MDA8等等常規(guī)處理流程都搞起來(lái)


代碼放在了這里, 僅供參考

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末立镶,一起剝皮案震驚了整個(gè)濱河市突照,隨后出現(xiàn)的幾起案子赋续,更是在濱河造成了極大的恐慌胚鸯,老刑警劉巖泪喊,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蝇刀,死亡現(xiàn)場(chǎng)離奇詭異譬淳,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)祠斧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門闻察,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事辕漂∧卦睿” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵钉嘹,是天一觀的道長(zhǎng)填抬。 經(jīng)常有香客問(wèn)我,道長(zhǎng)隧期,這世上最難降的妖魔是什么飒责? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮仆潮,結(jié)果婚禮上宏蛉,老公的妹妹穿的比我還像新娘。我一直安慰自己性置,他們只是感情好拾并,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鹏浅,像睡著了一般嗅义。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上隐砸,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天之碗,我揣著相機(jī)與錄音,去河邊找鬼季希。 笑死褪那,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的式塌。 我是一名探鬼主播博敬,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼峰尝!你這毒婦竟也來(lái)了偏窝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤武学,失蹤者是張志新(化名)和其女友劉穎祭往,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體劳淆,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡链沼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沛鸵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖曲掰,靈堂內(nèi)的尸體忽然破棺而出疾捍,到底是詐尸還是另有隱情,我是刑警寧澤栏妖,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布乱豆,位于F島的核電站,受9級(jí)特大地震影響吊趾,放射性物質(zhì)發(fā)生泄漏宛裕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一论泛、第九天 我趴在偏房一處隱蔽的房頂上張望揩尸。 院中可真熱鬧,春花似錦屁奏、人聲如沸岩榆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)勇边。三九已至,卻和暖如春折联,著一層夾襖步出監(jiān)牢的瞬間粒褒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工诚镰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留怀浆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓怕享,卻偏偏與公主長(zhǎng)得像执赡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子函筋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容