Skip to content

Latest commit

 

History

History
143 lines (116 loc) · 4.25 KB

plot_projections.rst

File metadata and controls

143 lines (116 loc) · 4.25 KB
.. testsetup::

   from pyresample.geometry import AreaDefinition
   area_id = 'ease_sh'
   description = 'Antarctic EASE grid'
   proj_id = 'ease_sh'
   projection = {'proj': 'laea', 'lat_0': -90, 'lon_0': 0, 'a': 6371228.0, 'units': 'm'}
   width = 425
   height = 425
   area_extent = (-5326849.0625, -5326849.0625, 5326849.0625, 5326849.0625)
   area_def = AreaDefinition(area_id, description, proj_id, projection,
                             width, height, area_extent)
   import numpy as np
   lons = np.zeros(1000)
   lats = np.arange(-80, -90, -0.01)
   tb37v = np.arange(1000)
   from pyresample import SwathDefinition
   swath_def = SwathDefinition(lons, lats)
   if plt is not None:
       import matplotlib
       matplotlib.use('agg')

The Plate Carree projection

The Plate Carree projection (regular lon/lat grid) is named eqc in Proj.4. Pyresample uses the Proj.4 naming.

Assuming the file areas.yaml has the following area definition:

pc_world:
  description: Plate Carree world map
  projection:
    proj: eqc
    ellps: WGS84
  shape:
    height: 480
    width: 640
  area_extent:
    lower_left_xy: [-20037508.34, -10018754.17]
    upper_right_xy: [20037508.34, 10018754.17]

Example usage:

.. testsetup::

   from pyresample.area_config import load_area_from_string
   area_def = load_area_from_string("""
   pc_world:
     description: Plate Carree world map
     projection:
       proj: eqc
       ellps: WGS84
     shape:
       height: 480
       width: 640
     area_extent:
       lower_left_xy: [-20037508.34, -10018754.17]
       upper_right_xy: [20037508.34, 10018754.17]
    """, "pc_world")

>>> import matplotlib.pyplot as plt
>>> from pyresample import load_area, save_quicklook
>>> from pyresample.kd_tree import resample_nearest
>>> area_def = load_area('areas.yaml', 'pc_world')  # doctest: +SKIP
>>> result = resample_nearest(swath_def, tb37v, area_def, radius_of_influence=20000, fill_value=None)
>>> save_quicklook('tb37v_pc.png', area_def, result, num_meridians=None, num_parallels=None, label='Tb 37v (K)')  # doctest: +SKIP

Assuming lons, lats and tb37v are initialized with real data (like above we use AMSR-2 data in this example) the result might look something like this:

_static/images/tb37v_pc.png

The Globe projections

From v0.7.12 pyresample can use the geos, ortho and nsper projections with Basemap. Starting with v1.9.0 quicklooks are now generated with Cartopy which should also work with these projections. Again assuming the area-config file areas.yaml has the following definition for an ortho projection area:

ortho:
  description: Ortho globe
  projection:
    proj: ortho
    lon_0: 40.
    lat_0: -40.
    a: 6370997.0
  shape:
    height: 480
    width: 640
  area_extent:
    lower_left_xy: [-10000000, -10000000]
    upper_right_xy: [10000000, 10000000]

Example usage:

.. testsetup::

   from pyresample.area_config import load_area_from_string
   area_def = load_area_from_string("""
   ortho:
     description: Ortho globe
     projection:
       proj: ortho
       lon_0: 40.
       lat_0: -40.
       a: 6370997.0
     shape:
       height: 480
       width: 640
     area_extent:
       lower_left_xy: [-10000000, -10000000]
       upper_right_xy: [10000000, 10000000]
   """, "ortho")

>>> from pyresample import load_area, save_quicklook, SwathDefinition
>>> from pyresample.kd_tree import resample_nearest
>>> from pyresample import load_area
>>> area_def = load_area('areas.yaml', 'ortho') # doctest: +SKIP
>>> swath_def = SwathDefinition(lons, lats)
>>> result = resample_nearest(swath_def, tb37v, area_def, radius_of_influence=20000, fill_value=None)
>>> save_quicklook('tb37v_ortho.png', area_def, result, num_meridians=None, num_parallels=None, label='Tb 37v (K)')  # doctest: +SKIP

Assuming lons, lats and tb37v are initialized with real data, like in the above examples, the result might look something like this:

_static/images/tb37v_ortho.png