Commit commit:fc8cf8c2
Main advances:
- porting of map plotting to
cartopy
, due to the deprecation announcement of basemap
- new apptool:
epy_cartoplot.py
, shall replace epy_plot.py
with cartopy
- plot3D update, including
epy_plot3d.py
More detailed contents, since 1.3.6:¶
GRIB:
grib_utilities
becomes griberies
- rewrite of GRIB read/write methods
- creation of GribDef objects
- new apptool
what_the_grib.py
what()
: nicer list of fields
listfields(additional_keys=...)
- Numerous fixes
FA:
- 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)
epyweb:
- 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:
- fields comparison:
scatter_with()
, compare_to()
, normalized_comparison()
- recursive objects comparison improvement
- cartopy:
cartoplot()
and default_cartopy_CRS()
methods
3D:
- New apptool:
epy_plot3d.py
- 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
Miscellaneous:
- 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...
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:¶
Fields:
- 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
Geometries:
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
FA:
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
GRIB:
- fid of GRIB messages more flexible according to product template number
- fix for int keys in index
LFI:
- optimization
moveOnMass
option
- default value for productDefinitionTemplateNumber
- fid correction for misc fields read from LFI in true3d mode
netCDF:
- minimal support when Xgrid and Ygrid are defined as 3D
Resources:
DiagnosticsResource
- new format
netCDFMNH
Technical:
- update installation script (@cnrm) - incl. dissociate vortex and epygram
- Python3/ecCodes2.10.0 adaptation
Miscellaneous:
- numerous various fixes...
- precipitation types colormapping (ptype, ptype0)
epyweb
: Minimal support of GRIB2 files
Commit commit:660134f5
Contents, since 1.3.2:
Geometries:
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)
FA:
- in place method
modify_validity()
GRIB:
- even better handling of the gribapi indexes bug (the former still led to "Too many open files error")
Technical:
- installation script:
install_epygram.py
Miscellaneous:
- numerous various fixes...
- doc: dependancies, colormaps, cheatsheet.pdf,
epy_doc.py
Commit commit:1cfe0f1
Contents, since 1.2.15:
epygram is now Python3-compatible, EXCEPT that neither gribapi nor ecCodes is...
Geometries:
- 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
GRIB:
- 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
NetCDF:
- more options in the writing of fields
usevortex:
- use vortex' ftppool for faster and more reliable transfers
Technical:
- new ctypesForFortran.py mechanism for interfacing Fortran routines (arpifs4py)
- stricter equality between objects, new function tolerant_equal()
- rationalisation of init_env()
Miscellaneous:
- GeoPoints format: more modular
- numerous various fixes...
- doc and Field_Dict_FA updates
Commit commit:9b50175
Contents, since 1.2.10:
Functionalities:
change default colormap from seismic to RdBu_r, softer for the eyes...
more options to basemap
field.shave()
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
FA:
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)
GRIB:
ability to read spectral fields (spherical harmonics)
workaround a bug in gribapi indexes
workaround 'pv' key absence
NetCDF:
regular_lonlat grid_mapping and resolution consistency
EPYWEB:
Epyweb fixes and updated defaults
usevortex:
fixes for FTP and session memory leak
quiet_get() context manager
domain_maker:
domain_maker reorganized in order to be used from Olive (clim_3to1 configuration)
departments option
margin in lonlat-included domain generation, customizable in config
Technical:
more unit-tests
movings to bronx
site-package along vortex
Miscellaneous:
Doc and Notebooks update
Numerous various fixes
update Field_Dict_FA (visibility)
Commit commit:0e2352a
Contents, since 1.2.0:
Functionalities
Extract a subzone, keeping projection properties: field.extract_subarray()
Update of geometry.plotgeometry()
Factorization of functions in domain_maker
Histograms of fields: field.hist()
+ epy_hist.py
Option epy_stats.py --only_maxdiff/--oxd
Horizontaly averaged profiles (FA, epy_profile.py)
Grid-to-grid resampling: field.resample()
and .resample_on_regularll()
FA
Ability to read/write GRIB2-encoded fields in FA (using grib_api), with an arpifs4py.so from cy42_op1 onwards
netCDF
On-the-fly options in writing: writefield(adhoc_behaviour=...)
Flattening
EPYWEB
Mode filesystem
Numerous various fixes
usevortex
Points/profiles extraction to netCDF: usevortex.extractor()
Technical
Unit-tests
Preparation to future compatibility with Python3
Support for LFI on MF-Bull
Miscellaneous
Numerous various fixes
Field data accessors, made cleaner
Various other cleanings
Update of the documentation
Notebooks in Tutorial
Commit commit:e0dcee6
netCDF
Several improvements w.r.t. convention CF-1.6 and geometry.
(Almost full-) Compatibility with the forthcoming SURFEX v8.1 netCDF outputs.
EPYWEB
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
Miscellaneous
Porting fixes for Mageia6
More flexible colormaps scalings (as radar)
And a quantity of fixes !...
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.