source: qesdi/geoplot/trunk/lib/geoplot/tests/integration/test_output_layer_drawer_all.py @ 5704

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/qesdi/geoplot/trunk/lib/geoplot/tests/integration/test_output_layer_drawer_all.py@5704
Revision 5704, 3.8 KB checked in by pnorton, 11 years ago (diff)

Added a module to fix the import Image / from PIL import Image problem.

Line 
1import logging
2import os
3
4from geoplot.layer_drawer_grid import LayerDrawerGrid
5from geoplot.layer_drawer_coastline import LayerDrawerCoastlines
6from geoplot.layer_drawer_contour import LayerDrawerContour
7
8from geoplot.tests import outputsDir
9
10from geoplot.image_import import Image
11from geoplot.tests.make_ll_grid_data import makeLLVar
12from geoplot.tests.make_rotated_grid_data import makeRotatedGridVar
13from geoplot.tests.make_national_grid_data import makeNationalGridVar
14import geoplot.tests.make_data_functions as make_data_functions 
15
16import matplotlib.cm as cm
17
18log = logging.getLogger(__name__)
19
20
21def drawLatLon():
22   
23    var = makeLLVar('var', 
24                    lonBounds=(-10,10), latBounds=(40,60), 
25                    nx=100, ny=100, 
26                    function=make_data_functions.fnSinXsqAddCosYsq)
27   
28    gridLd = LayerDrawerGrid(var, gridType='latlon', 
29                         showGridLines=True, 
30                         cmap=cm.jet, 
31                         cmapRange=(var.min(), var.max()),
32                         transparent=False)
33   
34    contourLd = LayerDrawerContour(var, gridType='latlon', 
35                         cmap=cm.gray, 
36                         cmapRange=(var.min(), var.max()),
37                         transparent=True)
38   
39    coastLd = LayerDrawerCoastlines(resolution='i',
40                               transparent=True)     
41   
42    _drawImages(gridLd, contourLd, coastLd, 'latlon_data')
43
44
45def drawNational():
46   
47    var = makeNationalGridVar('var')
48   
49   
50    gridLd = LayerDrawerGrid(var, gridType='national', 
51                         showGridLines=True, 
52                         cmap=cm.jet, 
53                         cmapRange=(var.min(), var.max()))
54   
55
56    contourLd = LayerDrawerContour(var, gridType='national', 
57                         cmap=cm.gray, 
58                         cmapRange=(var.min(), var.max()),
59                         transparent=True)   
60   
61    coastLd = LayerDrawerCoastlines(resolution='i',
62                               transparent=True)     
63   
64    _drawImages(gridLd, contourLd, coastLd, 'national_data')
65
66def drawRotated():
67   
68    var, rotVar = makeRotatedGridVar('var')
69   
70    atts = ['grid_north_pole_longitude','grid_north_pole_latitude','north_pole_grid_longitude']
71    for att in atts:
72        setattr(var,att, getattr(rotVar, att))
73       
74    gridLd = LayerDrawerGrid(var, gridType='rotated', 
75                         showGridLines=True, 
76                         cmap=cm.jet, 
77                         cmapRange=(var.min(), var.max()))
78           
79    contourLd = LayerDrawerContour(var, gridType='rotated', 
80                         cmap=cm.gray, 
81                         cmapRange=(var.min(), var.max()),
82                         transparent=True)
83   
84    coastLd = LayerDrawerCoastlines(resolution='i',
85                               transparent=True)     
86   
87    _drawImages(gridLd, contourLd, coastLd, 'rotated_data')
88
89def _drawImages(gridLd, contourLd, coastLd, name):
90   
91    kwargs = {'xLimits':(-15, 15),
92              'yLimits':(35,65),
93              'width':800,
94              'height':800,}
95
96   
97    for projection in ['latlon','national']:
98       
99        finalImg = Image.new('RGBA', (kwargs['width'], kwargs['height']), (0,0,0,0))
100       
101        for ld in [coastLd, contourLd, gridLd ]:
102            ld.projection = projection
103            img = ld.makeImage(**kwargs) 
104            finalImg = Image.composite(finalImg, img, finalImg)
105       
106       
107        filepath = os.path.join(outputsDir, 'layer_%s_%s_project.png' % (name, projection)) 
108        finalImg.save(filepath, 'PNG')
109        print "wrote %s" % (filepath,)
110
111if __name__ == '__main__':
112   
113   
114    LOG_FORMAT_STRING = '%(name)-20s %(asctime)s ln:%(lineno)-3s %(levelname)-8s\n %(message)s\n'
115    logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT_STRING)
116   
117   
118    drawLatLon()
119    drawNational()
120    drawRotated()
Note: See TracBrowser for help on using the repository browser.