Moved /mist/trunk/python/quakes.py to www/trunk/quakes2kml.py
This commit is contained in:
parent
d8e450fad8
commit
fc0588d3b4
Notes:
subgit
2018-03-07 17:58:41 +01:00
r498 www/trunk
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -1 +1,2 @@
|
||||
* text=auto !eol
|
||||
/quakes2kml.py -text
|
||||
|
95
quakes2kml.py
Executable file
95
quakes2kml.py
Executable file
@ -0,0 +1,95 @@
|
||||
#! /usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Creates KML file with station info.
|
||||
|
||||
License
|
||||
Copyright 2012 Kasper D. Fischer <kasper.fischer@rub.de>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation, either version 3 of the License, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
$Id: stations.py 311 2012-01-31 14:34:31Z kasper $
|
||||
"""
|
||||
|
||||
import csv, os, shutil, sys
|
||||
import simplekml
|
||||
from obspy.core import UTCDateTime
|
||||
|
||||
# create new empty KML file
|
||||
kml = simplekml.Kml()
|
||||
|
||||
# create empyt folder to contain styles and stations
|
||||
quakes_folder = kml.newfolder(name="Earthquakes")
|
||||
|
||||
# style of broad-band stations
|
||||
quake1m_style = simplekml.Style()
|
||||
quake1m_style.iconstyle.color = 'ff0000ff'
|
||||
quake1m_style.iconstyle.icon.href = 'circle'
|
||||
|
||||
# style of short periode stations
|
||||
quake1y_style = simplekml.Style()
|
||||
quake1y_style.iconstyle.color = 'ffff00ff'
|
||||
|
||||
# style of short periode stations
|
||||
quakeAll_style = simplekml.Style()
|
||||
quakeAll_style.iconstyle.color = 'ff00ffff'
|
||||
|
||||
# reading earthquake list
|
||||
events = []
|
||||
num_header = 0
|
||||
with open('quakes.txt', 'rb') as f:
|
||||
reader = csv.reader(f, delimiter='\t')
|
||||
try:
|
||||
for row in reader:
|
||||
if ( reader.line_num <= num_header ):
|
||||
header = row
|
||||
else:
|
||||
events.append(row)
|
||||
except csv.Error, e:
|
||||
sys.exit('file {0}, line {1}: {2}'.format('quakes.txt', reader.line_num, e))
|
||||
|
||||
# adding station markers
|
||||
for event in events:
|
||||
eventTime = UTCDateTime(event[0]+' '+event[1])
|
||||
nowTime = UTCDateTime()
|
||||
lat = event[2]
|
||||
lon = event[3]
|
||||
mag = event[4]
|
||||
region = event[5]
|
||||
|
||||
pnt = quakes_folder.newpoint(
|
||||
name = region,
|
||||
coords = [(lon, lat)],
|
||||
description = "<p>Magnitude {0}<br>Time {1}<br>Location {2}N {3}E</p>".format(
|
||||
mag, eventTime.strftime('%Y-%m-%d %H:%M:%S'), lat, lon)
|
||||
)
|
||||
pnt.extendeddata.newdata('mag', mag)
|
||||
pnt.extendeddata.newdata('lat', lat)
|
||||
pnt.extendeddata.newdata('lon', lon)
|
||||
pnt.extendeddata.newdata('time', eventTime.strftime('%Y-%m-%d %H:%M:%S'))
|
||||
pnt.extendeddata.newdata('age', nowTime-eventTime)
|
||||
pnt.extendeddata.newdata('pntsize', float(mag)*3.5+2)
|
||||
if (( nowTime - eventTime ) > 60*60*24*30 ):
|
||||
pnt.extendeddata.newdata('pntcolor', '#ffa500')
|
||||
pnt.style = quake1y_style
|
||||
elif (( nowTime - eventTime ) > 60*60*24*365 ):
|
||||
pnt.extendeddata.newdata('pntcolor', '#ffff00')
|
||||
pnt.style = quakeAll_style
|
||||
else:
|
||||
pnt.extendeddata.newdata('pntcolor', '#ff0000')
|
||||
pnt.style = quake1m_style
|
||||
|
||||
|
||||
# saving the KML file
|
||||
kml.save('quakes.kml')
|
Loading…
Reference in New Issue
Block a user