Eswlnk Blog Eswlnk Blog
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈
  • 注册
  • 登录
首页 › 代码发布 › 如何将震源球绘制在谷歌地球上

如何将震源球绘制在谷歌地球上

Eswlnk的头像
Eswlnk
2022-06-17 17:04:00
如何将震源球绘制在谷歌地球上-Eswlnk Blog
智能摘要 AI
本文介绍了如何在谷歌地球中展示小型地震球的方法。通过使用Python脚本结合`obspy.imaging.beachball`库生成地震球PNG图片,并利用`simplekml`库创建包含地震信息的KML文件。具体步骤包括读取地震数据(如时间、经纬度、深度等),生成对应的地震球图像并保存,然后将其添加到KML文件中。最终生成的KML文件可在谷歌地球中打开,直观展示地震分布及其特征。

不经意间看到一篇文章,讲述了有关谷歌地球的绘制方法,而在谷歌地球上可以轻松地扩展和缩小区域。在谷歌地图上画一个地震球,就能轻易看出地震发生的原因。本文介绍如何将一个小型的地震球显示在谷歌上。

这个道理,也是比较好理解的:

使用obspy.imaging.be ach ball制作一个地震球,并将其作为 PNG文件的一张照片

使用 simplekml 产生含有点数的 KML档案,同时各点与一次地震相关联,将点号设定为震源球形图像。

在这个例子中, catalog.dat是这样的:

# origin latitude longitude depth mag strike dip rake
20161223172502 36.7282 141.8532  39.67 4.9 4 53 -97
20161228123849 36.7202 140.5742  10.84 5.9 307 52 -118
20161230200827 37.3550 141.4098  27.35 5.1 21 56 -82

以下为 Python 脚本,在 Python 3.6、ObsPy 1.1.0 和 simplekml 1.3.0 下测试通过。

Python脚本

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import matplotlib.pyplot as plt

import simplekml
from obspy.imaging.beachball import beachball

beachball_dir = "beachballs"

if not os.path.exists(beachball_dir):
    os.mkdir(beachball_dir)

kml = simplekml.Kml()
with open("catalog.dat") as f:
    for line in f:
        # skip comment lines
        if line.startswith('#'):
            continue

        items = line.split()
        event_id = items[0]
        latitude, longitude, depth, magnitude, strike, dip, rake = map(
            float, items[1:])

        # plot beachballs and save as PNG file
        outfile = "{}/{}.png".format(beachball_dir, event_id)
        beachball([strike, dip, rake], outfile=outfile)
        # must close to avoid opening too many figures one time
        plt.close()

        # add points to KML file
        point = kml.newpoint(name=None)
        point.coords = [(longitude, latitude)]
        point.description = event_id
        # style.iconstyle.scale controls the size of beachball
        point.style.iconstyle.scale = 1.5
        point.style.iconstyle.icon.href = outfile
    kml.save("beachballs.kml")

执行该脚本后会得到KML文件 beachballs.kml ,用Google Earth打开KML文件,效果如下图 所示。

效果图

如何将震源球绘制在谷歌地球上-Eswlnk Blog
本站默认网盘访问密码:1166
本站默认网盘访问密码:1166
Eswinkpythonpython脚本编写工程实践谷歌谷歌地球谷歌绘制辅助震源球
0
0
Eswlnk的头像
Eswlnk
一个有点倒霉的研究牲站长
赞赏
如何通过使用CloudFlare的转换规则实现隐藏bucket路径
上一篇
JAVA如何自定义Mysql连接池
下一篇

评论 (0)

请登录以参与评论
现在登录
    发表评论

猜你喜欢

  • 「亲测有效」Google Gemini 学生优惠:解决身份验证和支付卡验证
  • 来自谷歌27岁的生日涂鸦
  • 小工具开发之EdgeOne免费计划兑换工具
  • 研究日志:ERA5-Land数据解析问题
  • 开发日志:解决Windows平台无法使用Metview解析数据的难题
Eswlnk的头像

Eswlnk

一个有点倒霉的研究牲站长
1108
文章
319
评论
679
获赞

随便看看

「技术教程」如何在项目中使用一个自定义的npm模块 | 如何使用一个魔改后的npm模块
2024-03-29 12:22:08
查看变量类型的 Python 内置函数是什么?
2023-02-25 19:10:08
绕过Hook通过内核 API 免杀
2023-07-29 17:55:29

文章目录

专题展示

WordPress53

工程实践37

热门标签

360 AI API CDN java linux Nginx PDF PHP python SEO Windows WordPress 云服务器 云服务器知识 代码 免费 安全 安卓 工具 开发日志 微信 微软 手机 插件 攻防 攻防对抗 教程 日志 渗透分析 源码 漏洞 电脑 破解 系统 编程 网站优化 网络 网络安全 脚本 苹果 谷歌 软件 运维 逆向
  • 首页
  • 知识库
  • 地图
Copyright © 2023-2025 Eswlnk Blog. Designed by XiaoWu.
本站CDN由 壹盾安全 提供高防CDN安全防护服务
蜀ICP备20002650号-10
页面生成用时 0.818 秒   |  SQL查询 46 次
本站勉强运行:
友情链接: Eswlnk Blog 网站渗透 倦意博客 特资啦!个人资源分享站 祭夜博客 iBAAO壹宝头条
  • WordPress142
  • 网络安全64
  • 漏洞52
  • 软件52
  • 安全48
现在登录
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈