[cig-commits] r13342 - cs/portal/trunk/northridge/SeismoWebPortal

leif at geodynamics.org leif at geodynamics.org
Tue Nov 18 19:19:34 PST 2008


Author: leif
Date: 2008-11-18 19:19:33 -0800 (Tue, 18 Nov 2008)
New Revision: 13342

Modified:
   cs/portal/trunk/northridge/SeismoWebPortal/management.py
   cs/portal/trunk/northridge/SeismoWebPortal/models.py
Log:
Import 3D models during 'syncdb'.


Modified: cs/portal/trunk/northridge/SeismoWebPortal/management.py
===================================================================
--- cs/portal/trunk/northridge/SeismoWebPortal/management.py	2008-11-19 02:23:08 UTC (rev 13341)
+++ cs/portal/trunk/northridge/SeismoWebPortal/management.py	2008-11-19 03:19:33 UTC (rev 13342)
@@ -62,6 +62,21 @@
     return
 
 
+def createSpecfem3DGlobeModels(modelDir):
+    from fformats import Specfem3DGlobeModelFormat
+    from os.path import basename, join
+    from glob import glob
+    
+    format = Specfem3DGlobeModelFormat()
+    for pathname in glob(join(modelDir, "*.tgz")):
+        stream = open(pathname, 'r')
+        model = format.create(basename(pathname), stream)
+        print "Adding Specfem3DGlobeModel '%s'" % model
+        models.BuiltIn.objects.create(obj = model)
+
+    return
+
+
 def createStationList():
     from fformats import StationListFormat
     from os.path import dirname, join
@@ -365,7 +380,11 @@
                                 m.nex_xi() < mesh.nex_xi())):
             # Select the lowest-resolution global mesh.
             mesh = m
-    model = None # XXX
+    model = None
+    for m in models.Specfem3DGlobeModel.userObjectList(user)[0]:
+        if m.name == "s20rts":
+            model = m
+            break
     if mesh and model:
         parameters = models.Specfem3DGlobeParameters(mesh = mesh, model = model)
         parameters.name = "%s all on, %.0fs Nex=%d" % (
@@ -440,6 +459,11 @@
         createSpecfem3DGlobeMeshes()
         flag = True
 
+    specfemModelDir = os.environ.get('WEBPORTAL_3D_MODELS')
+    if (models.Specfem3DGlobeModel in created_models and
+        specfemModelDir):
+        createSpecfem3DGlobeModels(specfemModelDir)
+
     # Mineos
     if models.MineosParameters in created_models:
         flag = True

Modified: cs/portal/trunk/northridge/SeismoWebPortal/models.py
===================================================================
--- cs/portal/trunk/northridge/SeismoWebPortal/models.py	2008-11-19 02:23:08 UTC (rev 13341)
+++ cs/portal/trunk/northridge/SeismoWebPortal/models.py	2008-11-19 03:19:33 UTC (rev 13342)
@@ -404,7 +404,7 @@
 class Specfem3DGlobeModel(Model, EditableObject):
 
     name = models.CharField(maxlength=100)
-    pathname = models.FileField(upload_to="SeismoWebPortal/models")
+    pathname = models.FileField(upload_to="SeismoWebPortal/models/3D")
     description = models.TextField(blank=True)
 
     def __str__(self): return self.name



More information about the CIG-COMMITS mailing list