日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

解析USGS网站页面中的地震空间数据

發(fā)布時(shí)間:2023/12/4 综合教程 58 生活家
生活随笔 收集整理的這篇文章主要介紹了 解析USGS网站页面中的地震空间数据 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? USGS官方網(wǎng)站每天都會(huì)實(shí)時(shí)更新全世界的地震信息,包含地震發(fā)生的地點(diǎn),坐標(biāo),震級(jí),震中距離地表的距離等等,坐標(biāo)系采用的是地心坐標(biāo)系WGS84,如何將這些實(shí)時(shí)的信息采集到自己的系統(tǒng)之中,用于進(jìn)一步的科學(xué)計(jì)算和空間分析,需要借助一些解析數(shù)據(jù)和空間計(jì)算的方法。

??? GIS主流的應(yīng)用策略之一,是融合共享,也是技術(shù)發(fā)展的整體需求,接下來(lái)的內(nèi)容并不關(guān)心如何共享,而是從共享的最基礎(chǔ)層面-數(shù)據(jù)層面,來(lái)解析USGS網(wǎng)站頁(yè)面中的地震空間數(shù)據(jù)。

??? 地震信息源的網(wǎng)址:http://quake.wr.usgs.gov/recenteqs/Quakes/quakes0.htm

??? 抽取該網(wǎng)站上的地震數(shù)據(jù),可以使用主流的.Net,Java,開(kāi)發(fā)一個(gè)小程序,相對(duì)獨(dú)立,但是更多的空間分析和應(yīng)用是直接基于GIS桌面平臺(tái)進(jìn)行的,如同在 MatLab平臺(tái)上實(shí)現(xiàn)了一套數(shù)學(xué)分析的思路,需要引入更多的外部資源充實(shí)其中的變量和數(shù)組,因此,我們可以直接在GIS桌面平臺(tái)ArcMap中直接用 Python去抽取數(shù)據(jù),不同于普通的變量和數(shù)組,空間數(shù)據(jù)的引入還需要考慮坐標(biāo)轉(zhuǎn)換,符號(hào)設(shè)置等相關(guān)信息,基于AO的Python都可以幫助咱們?nèi)ヒ灰粚?shí)現(xiàn)。

??? urllib模塊是標(biāo)準(zhǔn)Python庫(kù)的一部分,方便提取最原始的地震數(shù)據(jù):
q?=?urllib.urlopen(r'http://quake.wr.usgs.gov/recenteqs/Quakes/quakes0.htm')
for?l?in?q.readlines():
????if?l.find("<STRONG>")?==?0:
????????l?=?l[8:]
????????l?=?l.replace("FONT?COLOR",?"FC")
????if?l.find('<A?HREF="/recenteqs/Maps')?==?0:
????????quakeI?=?l.split()
????????magnitude?=?float(quakeI[2])
????????x?=?-float(quakeI[7][:-1])
????????y?=?float(quakeI[6][:-1])

????????point?=?arcpy.Point(x,y)
????????feature?=?cur.newRow()
????????feature.shape?=?point
????????feature.setValue("magnitude",?magnitude)
????????cur.insertRow(feature) 這樣所有的屬性信息,包括x/y坐標(biāo)數(shù)據(jù)都已經(jīng)獲取。熟悉AO的朋友肯定非常了解"cur.insertRow(feature)"的含義和開(kāi)發(fā)過(guò)程了。不熟悉的請(qǐng)看后面解釋吧:
????#定義WGS84坐標(biāo)參考系
????SR?=?arcpy.SpatialReference(r"C:\workspace\demo3\WGS?1984.prj")
????#創(chuàng)建一個(gè)FeatureClass
????arcpy.CreateFeatureclass_management(os.path.dirname(tmpFC),
????????????????????????????????????????os.path.basename(tmpFC),
????????????????????????????????????????"POINT",
????????????????????????????????????????spatial_reference?=?SR)
????#增加一個(gè)屬性字段,代表地震震級(jí)
????arcpy.AddField_management(tmpFC,?"Magnitude",?"DOUBLE")
????#獲取該FeatureClass的插入游標(biāo)
????cur?=?arcpy.InsertCursor(tmpFC) 所以"cur.insertRow(feature)"就是將所有網(wǎng)站上獲取的每一個(gè)元組信息都添加到tmpFC臨時(shí)FeatureClass之中了。

??? 現(xiàn)在數(shù)據(jù)已經(jīng)獲取了,按照傳統(tǒng)的解析數(shù)據(jù)方法,咱們?nèi)蝿?wù)也就完成了,但是對(duì)于GIS應(yīng)用來(lái)說(shuō),需要將這些數(shù)據(jù)顯示到基礎(chǔ)地圖上,這里面就需要思考兩個(gè)問(wèn)題:

??? 1.已獲取數(shù)據(jù)的坐標(biāo)系和基礎(chǔ)地圖數(shù)據(jù)是否相同?不相同則需要坐標(biāo)轉(zhuǎn)換。
??? 2.如何符號(hào)化顯示?

??? 假如我們基礎(chǔ)地圖的坐標(biāo)是North_America_Albers_Equal_Area_Conic.prj,坐標(biāo)轉(zhuǎn)換可以通過(guò)以下兩行代碼完成: ????SR?=?arcpy.SpatialReference(r"C:\workspace\demo3\North_America_Albers_Equal_Area_Conic.prj")
????arcpy.Project_management(tmpFC,?outFC,?SR,?"NAD_1983_To_WGS_1984_1")
????符號(hào)化可以自定義,也可以參考已有圖層的樣式,如: ????arcpy.ApplySymbologyFromLayer_management(os.path.splitext(os.path.basename(outFC))[0],
?????????????????????????????????????????????r"c:\workspace\demo3\earthquake.lyr") 這樣咱們就完成了解析的工作,可以在ArcMap中基于這些數(shù)據(jù)進(jìn)行進(jìn)一步的分析。ArcMap 9.3需要在單獨(dú)的IDLE環(huán)境中寫(xiě)開(kāi)發(fā)腳本,將結(jié)果手工添加到ArcMap平臺(tái)軟件中,ArcMap 9.4則直接整合了Python運(yùn)行環(huán)境,開(kāi)發(fā)過(guò)程中加入了動(dòng)態(tài)提示,實(shí)時(shí)幫助,應(yīng)用交互等等,在科學(xué)計(jì)算和空間分析中非常方便。

??? 插圖:

??? 原始軟件界面

??? 導(dǎo)入或直接編寫(xiě)Python代碼
??? 自動(dòng)提示

??? 右側(cè)幫助信息
??? 最終結(jié)果

本文轉(zhuǎn)自Flyingis博客園博客,原文鏈接:http://www.cnblogs.com/flyingis/archive/2009/11/05/1596472.html,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的解析USGS网站页面中的地震空间数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。