source: cowsserver/trunk/lib/cowsserver/tests/owslib_tests/wms_get_all_images.py @ 6145

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/cowsserver/trunk/lib/cowsserver/tests/owslib_tests/wms_get_all_images.py@6145
Revision 6145, 3.7 KB checked in by pnorton, 10 years ago (diff)

Cleaned up the coastwms controller and modified the owslib tests.

Line 
1'''
2Created on 26 Nov 2009
3
4@author: pnorton
5'''
6import os
7import logging
8import owslib 
9import cowsserver.tests.owslib_tests.wms_test_image_download as wms_image_download 
10from cowsserver.tests.owslib_tests import getOwsLibTestOutputDir
11
12import cowsserver.tests.owslib_tests.owslib_test_utils as utils
13
14
15log = logging.getLogger(__name__)
16
17option_lookup = {
18'PML_510_Ocean_Optical': {
19        'absorption_coefficient_ph' :{'cmap_scale':'log', 'cmap_min':'1e-8',   'cmap_max':'5'},
20        'absorption_coefficient'    :{'cmap_scale':'log', 'cmap_min':'0.01',   'cmap_max':'15000'},
21        'absorption_coefficient_dy' :{'cmap_scale':'log', 'cmap_min':'0.0001', 'cmap_max':'2000'},
22        'backscattering_coefficient':{'cmap_scale':'log', 'cmap_min':'1e-7',   'cmap_max':'1000'},
23    },
24'PML_Plankton_Climatology':{
25        'phytoplankton_size_class':{'cmap_min':'0', 'cmap_max':'4'}, 
26    },
27'PML_412_Ocean_Optical':{
28        'absorption_coefficient_ph' :{'cmap_min':'1e-5',  'cmap_max':'500'},
29        'absorption_coefficient'    :{'cmap_min':'1e-3',  'cmap_max':'200000'},
30        'absorption_coefficient_dy' :{'cmap_min':'1e-3',  'cmap_max':'25'},
31        'backscattering_coefficient':{'cmap_min':'1e-07', 'cmap_max':'1000'},
32    },
33'PML_555_Ocean_Optical':{
34    },
35'clim_10':{
36    },
37'PML_443_Ocean_Optical':{
38    },
39'PML_490_Ocean_Optical':{
40    },
41'ccip':{
42    },
43'globalpop':{
44    },
45'rres-ptf':{
46    },
47'clim_30':{
48    },
49'psc':{
50    },
51'islscp_soil':{
52    },
53'PML_Plankton_Monthly':{
54    },
55'wwf_olson':{
56    },
57'modis':{
58    },
59'psc_climatology':{
60    },
61'cru_tmc':{
62    },
63}
64
65def getAllWMSImagesFromEndpoint(cowsEndpoint, outputDir, **kwargs):
66
67    cowslinks = utils.parseCowsCatalog(cowsEndpoint)
68   
69    wmsFolderName = cowsEndpoint[7:-1]
70       
71    wmsFolderPath = os.path.join(outputDir, wmsFolderName)
72   
73    if not os.path.exists(wmsFolderPath) :
74        os.mkdir(wmsFolderPath)
75   
76    for dataset, links in cowslinks:
77        print "dataset = ", dataset
78       
79        if dataset in option_lookup:
80            optLookup = option_lookup[dataset]
81        else:
82            optLookup = None
83       
84        if 'WMS' not in links:
85            continue
86       
87        url = links['WMS']
88        wms_image_download.getWMSImagesForEndpoint(url, wmsFolderPath, 
89                            dsName=dataset, selectTime='all', optLookup=optLookup,
90                             **kwargs)
91   
92    cmd =  'convert %s %s ' % (os.path.join(outputDir, '*.png'), os.path.join(outputDir,'output.gif'))
93    print "cmd = ", cmd
94    #os.system()
95if __name__ == '__main__':
96   
97    import time
98    st = time.time()
99   
100    from cowsserver.tests.owslib_tests import SHORT_LOG_FORMAT_STRING
101    logging.basicConfig(level=logging.DEBUG, format=SHORT_LOG_FORMAT_STRING)
102   
103    size = (900,450)
104   
105    cowsEndpoint = 'http://ice.badc.rl.ac.uk:5000/'
106#    cowsEndpoint = 'http://phobos.badc.rl.ac.uk:5000/'
107#    cowsEndpoint = 'http://pampero.badc.rl.ac.uk/cows/'
108
109    olinefh = wms_image_download.getmap(owslib.wms.WebMapService('http://ice.badc.rl.ac.uk:5000/coastwms'), 
110                        layers=['coastline'], styles=[], 
111                        srs='EPSG:4326', 
112                        bbox=(-180, -90, 180, 90), 
113                        size=size,
114                        format='image/png',
115                        transparent=True)
116   
117    outlineImage = utils.makePILImage(olinefh)
118    olinefh.close()
119   
120   
121    #outputFolder = getOwsLibTestOutputDir()
122    outputFolder = '/data/pnorton/owslib_tests'
123    getAllWMSImagesFromEndpoint(cowsEndpoint, outputFolder, 
124                            size=size,
125                            outlineImage=outlineImage)   
126
127    print "done in %ss" % (time.time() - st)
128   
Note: See TracBrowser for help on using the repository browser.