1 | import PyNGL_numpy.Ngl as ngl |
---|
2 | |
---|
3 | def res_init(lat, lon, |
---|
4 | lat_min=None, |
---|
5 | lat_max=None, |
---|
6 | lon_min=None, |
---|
7 | lon_max=None): |
---|
8 | """ |
---|
9 | Assumes lat,lon are numpy arrays |
---|
10 | """ |
---|
11 | if not lat_min: |
---|
12 | lat_min = lat.min() |
---|
13 | if not lat_max: |
---|
14 | lat_max = lat.max() |
---|
15 | if not lon_min: |
---|
16 | lon_min = lon.min() |
---|
17 | if not lon_max: |
---|
18 | lon_max = lon.max() |
---|
19 | res = ngl.Resources() |
---|
20 | res.mpProjection = 'Orthographic' |
---|
21 | res.mpCenterLonF = lon_min + (lon_max-lon_min)/2. |
---|
22 | res.mpCenterLatF = lat_min + (lat_max-lat_min)/2. |
---|
23 | res.mpLimitMode = 'LatLon' |
---|
24 | res.mpMinLatF = lat_min - 0.2 |
---|
25 | res.mpMaxLatF = lat_max + 0.2 |
---|
26 | res.mpMinLonF = lon_min - 0.2 |
---|
27 | res.mpMaxLonF = lon_max + 0.2 |
---|
28 | res.mpFillOn = True |
---|
29 | res.mpGridSpacingF = 2. |
---|
30 | res.vpXF = 0.1 |
---|
31 | res.vpYF = 0.9 |
---|
32 | res.vpWidthF = 0.7 |
---|
33 | res.vpHeightF = 0.7 |
---|
34 | return res |
---|
35 | |
---|
36 | def make_land_gray(wks,res): |
---|
37 | ic = ngl.new_color(wks, 0.75, 0.75,0.75) |
---|
38 | res.mpFillColors = [0,-1,ic,-1] |
---|
39 | |
---|
40 | def mslp_contour_levels(res): |
---|
41 | mnlvl = 980 |
---|
42 | mxlvl = 1024 |
---|
43 | spcng = 2 |
---|
44 | ncn = (mxlvl - mnlvl) / spcng + 1 |
---|
45 | res.cnLevelSelectionMode = 'ManualLevels' |
---|
46 | res.cnMinLevelValF = mnlvl |
---|
47 | res.cnMaxLevelValF = mxlvl |
---|
48 | res.cnLevelSpacingF = spcng |
---|
49 | |
---|
50 | def sfc_pres_contour_levels(res): |
---|
51 | mnlvl = 840 |
---|
52 | mxlvl = 1024 |
---|
53 | spcng = 2 |
---|
54 | ncn = (mxlvl - mnlvl) / spcng + 1 |
---|
55 | res.cnLevelSelectionMode = 'ManualLevels' |
---|
56 | res.cnMinLevelValF = mnlvl |
---|
57 | res.cnMaxLevelValF = mxlvl |
---|
58 | res.cnLevelSpacingF = spcng |
---|
59 | |
---|
60 | |
---|