Release of v1.4.6

Added by alexandre mary about 2 months ago

Commit commit:b4880121

Contents since 1.4.3:


  • fix GRIB writing of constant fields
  • netCDF CF-1.4 stereopolar projection decoding
  • efficient iterator in GRIB (for f in g)


  • porting to belenos
  • porting to MacOSX
  • Makefile, deployment and installation updated (new directories/paths)


  • EPyGrAM no longer is in charge of setting matplotlib backend: now to be set in $HOME/.config/matplotlib/matplotlibrc
    backend: Agg is the recommended non-interactive backend
    backend: Qt5Agg is the recommended interactive backend for Mageia7
    cf. for more information
  • operations on Angles

And a whole lot of various fixes...

Release of v1.4.3

Added by alexandre mary 8 months ago

Commit commit:c6c0cbb8

Contents since 1.4.2:

A whole lot of various fixes...

  • formats plugged at runtime, if underlying package is available
  • TIFF: porting to python3
  • applicative functionalities are now implemented as plugins: vtk (3D visualization), basemap, cartopy
  • vtk: cf. commit commit:7ddd11b0 for more details
  • cartoplot: colormap_helper and extent arguments
  • cartoimage method (vector field as color composition)
  • porting to Bull Sequana (epona)

Release of v1.4.2

Added by alexandre mary 10 months ago

Commit commit:fc8cf8c2

Main advances:

  • porting of map plotting to cartopy, due to the deprecation announcement of basemap
  • new apptool:, shall replace with cartopy
  • plot3D update, including

More detailed contents, since 1.3.6:

  • grib_utilities becomes griberies
  • rewrite of GRIB read/write methods
  • creation of GribDef objects
  • new apptool
  • what(): nicer list of fields
  • listfields(additional_keys=...)
  • Numerous fixes
  • global: avoid to call trans_inq just to get SPdatasize for usual truncations
  • use of faFieldName.def GRIB definitions and sfxflddesc_mod.F90 instead of FA_Field_Dict.csv (=> adaptations needed if you have local .epygram versions)
  • GRIB2 : better and faster search within GRIB2 files, bugfix for plotting vectors, shortcuts for parameters updated
  • Misc: shortcuts for operational models updated (Vortex, domains), new pre-defined zooms
  • fields comparison: scatter_with(), compare_to(), normalized_comparison()
  • recursive objects comparison improvement
  • cartopy: cartoplot() and default_cartopy_CRS() methods
  • New apptool:
  • Simplification for 3D plotting: * offset, hCoord and z_factor are now hidden from the plotting methods * new util.vtk_guess_param_from_field to ease the choice of the above variables * util.vtk_set_window becomes util.vtk_setup * new util.vtk_proj function to ease the camera manipulation
  • Simplification regarding excludeextralevels parameter
  • Correction in D3VirtualField.getlevel when level values are position dependent
  • D3Geometry.isglobal property is added
  • geoid was missing in geometry returned by make_section_geometry
  • extract_subdomain can now performs a vertical coordinate change on the whole domain
  • ECMWF pre-configuration profiles
  • netCDF: Geos geometry read
  • netCDF: ignore failed read of validity
  • new handling of colormapping helpers + epygram colormaps in json format (=> adaptations needed if you have local .epygram versions)
  • improvement of installation script (known platforms only) => towards site-packages
  • suppression of femars apptool
  • porting to epona fixes
  • optimisation for interpolation on Gaussian geometry
  • various and numerous fixes...

Release of v1.3.6

Added by alexandre mary over 1 year ago

Commit commit:ccb8424

Main advances:
  • Python3 support for GRIB, provided you have ecCodes 2.10.0 onwards
  • 3D plotting (requires vtk)
  • Diagnostics meta-resources

More detailed contents, since 1.3.3:

  • 3D plotting (as_vtkGrid, plot3DContour, use_field_as_vccord and plot3DVolume)
  • method center added
  • getvalue_ij and getvalue_ll rewritten
  • interpolation bilinear instead of linear_spline when possible
  • extractsection and extractprofile added
  • bug correction for getvalue_ll (linear and cubic)
  • + and - operations: keep fid if same, compute a consistent validity, in consistent cases
  • domain_making: add possibility to set reference_lat for lambert
  • method eq_Hgeom
  • optimization and parallelization of several methods
  • plot3DLLImage, plot3DBluemarble
  • method vcoord_as_field
  • VGeometry: exclude_extralevels option for hybridH2altitude
  • profiles: flux and mass heights now contain extra levels
  • Field_Dict_FA.csv: correction for distinction between 0-3-4 and 0-3-5, for cloud water and ice crystal, default value for productDefinitionTemplateNumber
  • caches in find_fields_in_resource and inquire_field_dict
  • fieldencoding optionally updates fieldscompression dict
  • fid of GRIB messages more flexible according to product template number
  • fix for int keys in index
  • optimization
  • moveOnMass option
  • default value for productDefinitionTemplateNumber
  • fid correction for misc fields read from LFI in true3d mode
  • minimal support when Xgrid and Ygrid are defined as 3D
  • DiagnosticsResource
  • new format netCDFMNH
  • update installation script (@cnrm) - incl. dissociate vortex and epygram
  • Python3/ecCodes2.10.0 adaptation
  • numerous various fixes...
  • precipitation types colormapping (ptype, ptype0)
  • epyweb: Minimal support of GRIB2 files

Release of v1.3.3

Added by alexandre mary about 2 years ago

Commit commit:660134f5

Contents, since 1.3.2:

  • domain_making update: I and E zones in pgd
  • hybridP_coord_to_3D_altitude_field()
  • vgrid site package; provide handy tools to generate vertical hybrid-pressure coordinates (A & B)
  • in place method modify_validity()
  • even better handling of the gribapi indexes bug (the former still led to "Too many open files error")
  • installation script:
  • numerous various fixes...
  • doc: dependancies, colormaps, cheatsheet.pdf,

Release of v1.3.2

Added by alexandre mary over 2 years ago

Commit commit:1cfe0f1

Contents, since 1.2.15:

epygram is now Python3-compatible, EXCEPT that neither gribapi nor ecCodes is...

  • new geometry RotatedLonLat
  • get rid of home-made module myproj (towards pyproj)
  • more consistent azimuth() between geometries (caution: non-reproducible with former method, available through plane_azimuth())
  • more consistent use of geoid in distance/linspace/azimuth (caution: non-reproducible with before)
  • Gauss grid: resolution_field_from_stretching
  • better handling of the gribapi indexes bug (the former led to "Too many open files error")
  • ecCodes support, with a switch to use gribapi/eccodes and default to ecCodes
  • more options in the writing of fields
  • use vortex' ftppool for faster and more reliable transfers
  • new mechanism for interfacing Fortran routines (arpifs4py)
  • stricter equality between objects, new function tolerant_equal()
  • rationalisation of init_env()
  • GeoPoints format: more modular
  • numerous various fixes...
  • doc and Field_Dict_FA updates

Release of v1.2.15

Added by alexandre mary over 2 years ago

Commit commit:9b50175

Contents, since 1.2.10:

change default colormap from seismic to RdBu_r, softer for the eyes...
more options to basemap
call to (e)trans_inq through SpectralGeometry object
ability to plot uniform fields with points/scatter
Gauss geometry resolution_field()
plotfield(): add rcparams control
mesh_area methods for projected grids
levelsnumber in H2D.plotfield() can be a discrete list of levels
function to compute gauss_latitudes()
function to compute 3D pressure field from hybrid-pressure coordinate and surface pressure

bugfix in FA-Gauss writing
guess field type (H2D/Misc) if not in Field Dict
more control on limitation of FA compression (customizable in config)

ability to read spectral fields (spherical harmonics)
workaround a bug in gribapi indexes
workaround 'pv' key absence

regular_lonlat grid_mapping and resolution consistency

Epyweb fixes and updated defaults

fixes for FTP and session memory leak
quiet_get() context manager

domain_maker reorganized in order to be used from Olive (clim_3to1 configuration)
departments option
margin in lonlat-included domain generation, customizable in config

more unit-tests
movings to bronx site-package along vortex

Doc and Notebooks update
Numerous various fixes
update Field_Dict_FA (visibility)

Release of v1.2.10

Added by alexandre mary about 3 years ago

Commit commit:0e2352a

Contents, since 1.2.0:

Extract a subzone, keeping projection properties: field.extract_subarray()
Update of geometry.plotgeometry()
Factorization of functions in domain_maker
Histograms of fields: field.hist() +
Option --only_maxdiff/--oxd
Horizontaly averaged profiles (FA,
Grid-to-grid resampling: field.resample() and .resample_on_regularll()

Ability to read/write GRIB2-encoded fields in FA (using grib_api), with an from cy42_op1 onwards

On-the-fly options in writing: writefield(adhoc_behaviour=...)

Mode filesystem
Numerous various fixes

Points/profiles extraction to netCDF: usevortex.extractor()

Preparation to future compatibility with Python3
Support for LFI on MF-Bull

Numerous various fixes
Field data accessors, made cleaner
Various other cleanings
Update of the documentation
Notebooks in Tutorial

Release of v1.2.0

Added by alexandre mary almost 4 years ago

Commit commit:e0dcee6

Several improvements w.r.t. convention CF-1.6 and geometry.
(Almost full-) Compatibility with the forthcoming SURFEX v8.1 netCDF outputs.

Integration of EPYWEB: a Vortex+Epygram HTML interface for plotting fields from MF operational suites and OLIVE experiments.

Other new features
Pre-staging mode in usevortex
Function fields.psikhi2uv()
Function util.datetimerange()
Computation of wind direction

Porting fixes for Mageia6
More flexible colormaps scalings (as radar)

And a quantity of fixes !...

Release of v1.1.3

Added by alexandre mary almost 4 years ago

Commit commit:b53faebc

Advanced netCDF support:
Read/write from/to netCDF files well better handled (examples to come).
Support for any kind of fields, including temporal dimension (from a single Point to a 4D field).
Facility: any field can be dumped to a netCDF file, thanks to the dump_to_nc() method.

Fields' internal data is 4D
Although rather transparent to the user, the internal data storage of fields is now always 4D. This modification brings great simplification in many places.
The getdata()/setdata() methods are hereby essential to use, with the optional d4=True.

Better handling of time dimension in fields
Corrections, modifications linked to previous item, and possibility to extract a time index or extend time dimension with another field (cf. methods).

Animation of fields
Fields with a temporal dimension now propose a plotanimation() method, that create a matplotlib animation, that can be saved to a MP4 file.

"Special resources": or how to get 3D/4D fields from 2D resource(s)
A new proxy function to create easily "special resources" (epygram.resources.special_resource()), that enable to:
- make 3D fields from a resource containing a series of horizontal fields distributed on the vertical;
- make 2D fields + temporal dimension from a series of 1-time resources;
- combination of both.

Better handling of matplotlib's figures and axes in plotfield()
Enables to have multiple plots on the same figure, and a more trustful superposition of plots.

Derivatives for Gauss grid fields (arpifs4py)
Similarly to the cartesian grids, through the compute_xy_spderivatives() method.


    Also available in: Atom