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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:
  USGS官方网站每天都会实时更新全世界的地震信息,包含地震发生的地点,坐标,震级,震中距离地表的距离等等,坐标系采用的是地心坐标系WGS84,如何将这些实时的信息采集到自己的系统之中,用于进一步的科学计算和空间分析,需要借助一些解析数据和空间计算的方法。

    GIS主流的应用策略之一,是融合共享,也是技术发展的整体需求,接下来的内容并不关心如何共享,而是从共享的最基础层面-数据层面,来解析USGS网站页面中的地震空间数据。

    地震信息源的网址:http://quake.wr.usgs.gov/recenteqs/Quakes/quakes0.htm

    抽取该网站上的地震数据,可以使用主流的.Net,Java,开发一个小程序,相对独立,但是更多的空间分析和应用是直接基于GIS桌面平台进行的,如同在 MatLab平台上实现了一套数学分析的思路,需要引入更多的外部资源充实其中的变量和数组,因此,我们可以直接在GIS桌面平台ArcMap中直接用 Python去抽取数据,不同于普通的变量和数组,空间数据的引入还需要考虑坐标转换,符号设置等相关信息,基于AO的Python都可以帮助咱们去一一实现。

    urllib模块是标准Python库的一部分,方便提取最原始的地震数据:
复制代码
=  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坐标数据都已经获取。 熟悉AO的朋友肯定非常了解"cur.insertRow(feature)"的含义和开发过程了。不熟悉的请看后面解释吧:
复制代码
     # 定义WGS84坐标参考系
    SR  =  arcpy.SpatialReference(r " C:\workspace\demo3\WGS 1984.prj " )
    
# 创建一个FeatureClass
    arcpy.CreateFeatureclass_management(os.path.dirname(tmpFC),
                                        os.path.basename(tmpFC),
                                        
" POINT " ,
                                        spatial_reference 
=  SR)
    
# 增加一个属性字段,代表地震震级
    arcpy.AddField_management(tmpFC,  " Magnitude " " DOUBLE " )
    
# 获取该FeatureClass的插入游标
    cur  =  arcpy.InsertCursor(tmpFC)
复制代码
 
    所以"cur.insertRow(feature)"就是将所有网站上获取的每一个元组信息都添加到tmpFC临时FeatureClass之中了。

    现在数据已经获取了,按照传统的解析数据方法,咱们任务也就完成了,但是对于GIS应用来说,需要将这些数据显示到基础地图上,这里面就需要思考两个问题:

    1.已获取数据的坐标系和基础地图数据是否相同?不相同则需要坐标转换。
    2.如何符号化显示?

    假如我们基础地图的坐标是North_America_Albers_Equal_Area_Conic.prj,坐标转换可以通过以下两行代码完成:
    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 " )
    
     符号化可以自定义,也可以参考已有图层的样式,如:
    arcpy.ApplySymbologyFromLayer_management(os.path.splitext(os.path.basename(outFC))[0],
                                             r
" c:\workspace\demo3\earthquake.lyr " )
 
    这样咱们就完成了解析的工作,可以在ArcMap中基于这些数据进行进一步的分析。ArcMap 9.3需要在单独的IDLE环境中写开发脚本,将结果手工添加到ArcMap平台软件中,ArcMap 9.4则直接整合了Python运行环境,开发过程中加入了动态提示,实时帮助,应用交互等等,在科学计算和空间分析中非常方便。

    插图:

    原始软件界面


    导入或直接编写Python代码
    自动提示


    右侧帮助信息
    最终结果

本文转自Flyingis博客园博客,原文链接:http://www.cnblogs.com/flyingis/archive/2009/11/05/1596472.html,如需转载请自行联系原作者
相关文章
数据解析之xpath 太6了
数据解析之xpath 太6了
|
11天前
|
存储 弹性计算 缓存
阿里云服务器ECS通用型实例规格族特点、适用场景、指标数据解析
阿里云服务器ECS提供了多种通用型实例规格族,每种规格族都针对不同的计算需求、存储性能、网络吞吐量和安全特性进行了优化。以下是对存储增强通用型实例规格族g8ise、通用型实例规格族g8a、通用型实例规格族g8y、存储增强通用型实例规格族g7se、通用型实例规格族g7等所有通用型实例规格族的详细解析,包括它们的核心特点、适用场景、实例规格及具体指标数据,以供参考。
阿里云服务器ECS通用型实例规格族特点、适用场景、指标数据解析
|
4天前
|
消息中间件 canal 关系型数据库
Maxwell:binlog 解析器,轻松同步 MySQL 数据
Maxwell:binlog 解析器,轻松同步 MySQL 数据
34 11
|
9天前
|
数据采集 存储 JavaScript
构建您的第一个Python网络爬虫:抓取、解析与存储数据
【9月更文挑战第24天】在数字时代,数据是新的金矿。本文将引导您使用Python编写一个简单的网络爬虫,从互联网上自动抓取信息。我们将介绍如何使用requests库获取网页内容,BeautifulSoup进行HTML解析,以及如何将数据存储到文件或数据库中。无论您是数据分析师、研究人员还是对编程感兴趣的新手,这篇文章都将为您提供一个实用的入门指南。拿起键盘,让我们开始挖掘互联网的宝藏吧!
|
1月前
|
数据采集 存储 JavaScript
如何使用Cheerio与jsdom解析复杂的HTML结构进行数据提取
在现代网页开发中,复杂的HTML结构给爬虫技术带来挑战。传统的解析库难以应对,而Cheerio和jsdom在Node.js环境下提供了强大工具。本文探讨如何在复杂HTML结构中精确提取数据,结合代理IP、cookie、user-agent设置及多线程技术,提升数据采集的效率和准确性。通过具体示例代码,展示如何使用Cheerio和jsdom解析HTML,并进行数据归类和统计。这种方法适用于处理大量分类数据的爬虫任务,帮助开发者轻松实现高效的数据提取。
如何使用Cheerio与jsdom解析复杂的HTML结构进行数据提取
|
17天前
|
存储 关系型数据库 MySQL
技术解析:MySQL中取最新一条重复数据的方法
以上提供的两种方法都可以有效地从MySQL数据库中提取每个类别最新的重复数据。选择哪种方法取决于具体的使用场景和MySQL版本。子查询加分组的方法兼容性更好,适用于所有版本的MySQL;而窗口函数方法代码更简洁,执行效率可能更高,但需要MySQL 8.0及以上版本。在实际应用中,应根据数据量大小、查询性能需求以及MySQL版本等因素综合考虑,选择最合适的实现方案。
86 6
|
1月前
|
XML JSON API
淘宝京东商品详情数据解析,API接口系列
淘宝商品详情数据包括多个方面,如商品标题、价格、图片、描述、属性、SKU(库存量单位)库存、视频等。这些数据对于买家了解商品详情以及卖家管理商品都至关重要。
|
26天前
|
存储 JSON API
Python编程:解析HTTP请求返回的JSON数据
使用Python处理HTTP请求和解析JSON数据既直接又高效。`requests`库的简洁性和强大功能使得发送请求、接收和解析响应变得异常简单。以上步骤和示例提供了一个基础的框架,可以根据你的具体需求进行调整和扩展。通过合适的异常处理,你的代码将更加健壮和可靠,为用户提供更加流畅的体验。
63 0
|
2月前
|
监控 安全 网络安全
|
2月前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
38 0

推荐镜像

更多
下一篇
无影云桌面