[cig-commits] r11885 - in cs/portal/trunk/northridge/SeismoWebPortal: . templates/SeismoWebPortal
leif at geodynamics.org
leif at geodynamics.org
Thu May 1 13:06:06 PDT 2008
Author: leif
Date: 2008-05-01 13:06:06 -0700 (Thu, 01 May 2008)
New Revision: 11885
Modified:
cs/portal/trunk/northridge/SeismoWebPortal/cmt.py
cs/portal/trunk/northridge/SeismoWebPortal/forms.py
cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/event_search_results.html
cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/home.html
cs/portal/trunk/northridge/SeismoWebPortal/views.py
Log:
Merged bug fixes from r11326, r11791, r11848, r11860, and r11861.
Modified: cs/portal/trunk/northridge/SeismoWebPortal/cmt.py
===================================================================
--- cs/portal/trunk/northridge/SeismoWebPortal/cmt.py 2008-05-01 17:37:50 UTC (rev 11884)
+++ cs/portal/trunk/northridge/SeismoWebPortal/cmt.py 2008-05-01 20:06:06 UTC (rev 11885)
@@ -71,20 +71,21 @@
if len(tokens) == 1:
if tokens[0]:
cmtSolution = CMTSolution()
- tokens = tokens[0].split()
- cmtSolution.dataSource = tokens[0]
- cmtSolution.year = int(tokens[1])
- cmtSolution.month = int(tokens[2])
- cmtSolution.day = int(tokens[3])
- cmtSolution.hour = int(tokens[4])
- cmtSolution.minute = int(tokens[5])
- cmtSolution._second = float(tokens[6])
- cmtSolution.sourceLatitude = float(tokens[7])
- cmtSolution.sourceLongitude = float(tokens[8])
- cmtSolution.sourceDepth = float(tokens[9])
- cmtSolution.sourceMB = float(tokens[10])
- cmtSolution.sourceMs = float(tokens[11])
- cmtSolution.regionName = ' '.join(tokens[12:])
+ pde = tokens[0].lstrip()
+ cmtSolution.dataSource = pde[0:4].strip()
+ cmtSolution.year = int(pde[4:8])
+ tokens = pde[8:].split()
+ cmtSolution.month = int(tokens[0])
+ cmtSolution.day = int(tokens[1])
+ cmtSolution.hour = int(tokens[2])
+ cmtSolution.minute = int(tokens[3])
+ cmtSolution._second = float(tokens[4])
+ cmtSolution.sourceLatitude = float(tokens[5])
+ cmtSolution.sourceLongitude = float(tokens[6])
+ cmtSolution.sourceDepth = float(tokens[7])
+ cmtSolution.sourceMB = float(tokens[8])
+ cmtSolution.sourceMs = float(tokens[9])
+ cmtSolution.regionName = ' '.join(tokens[10:])
elif len(tokens) == 2:
attrName = tokens[0]
s = attrName.split()
@@ -149,7 +150,7 @@
return """<img class=beachball width=49 height=49 src="http://www.seismology.harvard.edu/cgi-bin/webCMTgif/form?mrr=%(mrr)s&mtt=%(mtt)s&mpp=%(mpp)s&mrt=%(mrt)s&mrp=%(mrp)s&mtp=%(mtp)s">""" % mt
def __str__(self):
- return """%(dataSource)s %(year)d %(month)2d %(day)2d %(hour)2d %(minute)2d %(_second)5.2f %(sourceLatitude)8.4f %(sourceLongitude)9.4f %(sourceDepth)5.1f %(sourceMB)3.1f %(sourceMs)3.1f %(regionName)s
+ return """%(dataSource)-04s%(year)04d %(month)2d %(day)2d %(hour)2d %(minute)2d %(_second)5.2f %(sourceLatitude)8.4f %(sourceLongitude)9.4f %(sourceDepth)5.1f %(sourceMB)3.1f %(sourceMs)3.1f %(regionName)s
event name: %(eventName)11s
time shift: %(timeShift)11.4f
half duration: %(halfDuration)8.4f
Modified: cs/portal/trunk/northridge/SeismoWebPortal/forms.py
===================================================================
--- cs/portal/trunk/northridge/SeismoWebPortal/forms.py 2008-05-01 17:37:50 UTC (rev 11884)
+++ cs/portal/trunk/northridge/SeismoWebPortal/forms.py 2008-05-01 20:06:06 UTC (rev 11885)
@@ -452,10 +452,18 @@
def parse_station_list(stationList, stream):
- for line in stream:
+ for i, line in enumerate(stream):
# parse the line
- code, network, latitude, longitude, elevation, bur = line.split()
+ line = line.split()
+ if i == 0 and len(line) == 1:
+ # old-style station list with count
+ continue
+
+ if len(line) != 6:
+ raise Exception
+
+ code, network, latitude, longitude, elevation, bur = line
latitude, longitude = float(latitude), float(longitude)
elevation, bur = float(elevation), float(bur)
Modified: cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/event_search_results.html
===================================================================
--- cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/event_search_results.html 2008-05-01 17:37:50 UTC (rev 11884)
+++ cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/event_search_results.html 2008-05-01 20:06:06 UTC (rev 11885)
@@ -5,6 +5,10 @@
<h2 class=titlebar>event search results</h2>
+{% if error %}
+<p><span class=error>{{ error }}</span></p>
+{% endif %}
+
{% if event_list %}
<table rules=groups>
<colgroup><col class=odd><col class=even><col class=odd><col class=even><col class=odd><col class=even><col class=odd></colgroup>
Modified: cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/home.html
===================================================================
--- cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/home.html 2008-05-01 17:37:50 UTC (rev 11884)
+++ cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/home.html 2008-05-01 20:06:06 UTC (rev 11885)
@@ -22,7 +22,7 @@
<h3>quick start</h3>
-<p>To set-up a new simulation, proceed as follows:
+<p>To set up a new simulation, proceed as follows:
<ol>
<li>Click "Simulations".
Modified: cs/portal/trunk/northridge/SeismoWebPortal/views.py
===================================================================
--- cs/portal/trunk/northridge/SeismoWebPortal/views.py 2008-05-01 17:37:50 UTC (rev 11884)
+++ cs/portal/trunk/northridge/SeismoWebPortal/views.py 2008-05-01 20:06:06 UTC (rev 11885)
@@ -12,8 +12,9 @@
from forms import RegistrationAddManipulator, RegistrationChangeManipulator
from models import Simulation, Model, Mesh, Station, StationList, StationNetwork, DataSource, Region
from models import Run, Job, OutputFile
-from cmt import CMTSolution
+import cmt
+
import os, os.path
from HTMLParser import HTMLParser
@@ -195,7 +196,7 @@
count = simulation.events.source_set.count()
for event in simulation.events.source_set.all():
- cmtSolution = CMTSolution.createFromDBModel(event)
+ cmtSolution = cmt.CMTSolution.createFromDBModel(event)
# NYI: Specfem requires this to be zero for one
# source, and positive for others. Set it to zero for
@@ -637,7 +638,8 @@
r.save()
return render_to_response('SeismoWebPortal/event_search_results.html',
- {'event_list': parser.cmtList },
+ {'event_list': parser.cmtList,
+ 'error': parser.error},
RequestContext(request, {}))
@@ -749,7 +751,7 @@
count = event.source_set.count()
for event in event.source_set.all():
- cmtSolution = CMTSolution.createFromDBModel(event)
+ cmtSolution = cmt.CMTSolution.createFromDBModel(event)
response.write(str(cmtSolution))
return response
@@ -763,7 +765,8 @@
def __init__(self):
HTMLParser.__init__(self)
self.state = 0
- self.cmtList = None
+ self.cmtList = []
+ self.error = None
def handle_starttag(self, tag, attrs):
if self.state == 0:
@@ -772,6 +775,9 @@
elif self.state == 2:
if tag == 'pre':
self.state = 3
+ elif self.state == -1:
+ if tag == 'p':
+ self.state = -2
return
def handle_endtag(self, tag):
@@ -786,8 +792,13 @@
if self.state == 1:
if data.find('Output in CMTSOLUTION format') != -1:
self.state = 2
+ elif data.startswith('CMT search error'):
+ self.state = -1
elif self.state == 3:
- self.cmtList = CMTSolution.parse(data)
+ self.cmtList = cmt.CMTSolution.parse(data)
+ elif self.state == -2:
+ self.error = data
+ self.state = -3
return
@@ -907,7 +918,7 @@
simulation = get_object_or_404(Simulation, id=sim_id)
for source in simulation.events.source_set.all():
- cmt = CMTSolution.createFromDBModel(source)
+ cmt = cmt.CMTSolution.createFromDBModel(source)
logs = [int(log10(fabs(x))) for x in (cmt.Mrr, cmt.Mtt, cmt.Mpp, cmt.Mrt, cmt.Mrp, cmt.Mtp)]
biggestLog = max(logs)
More information about the cig-commits
mailing list