Skip to content

Commit ffd0db2

Browse files
committed
2 parents 6a50076 + 0d6d026 commit ffd0db2

File tree

91 files changed

+1002
-799
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+1002
-799
lines changed

INSTALL

Lines changed: 44 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,11 @@ extract the iris source package, cd to the new directory, and enter::
4242

4343
In-place build - an alternative for developers
4444
==============================================
45-
We strongly encourage people to contribute to Iris and for this type of
45+
We are very keen to encourage contributions to Iris. For this type of
4646
development activity an in-place build can be useful. Once you've cloned
47-
the Iris git repository you can perform an in-place build by entering::
47+
the Iris git repository you can perform an in-place build with::
4848

49-
python setup.py std_names
50-
python setup.py build_ext --inplace
51-
52-
Details of other setup.py options and commands can be found by entering::
53-
54-
python setup.py --help
55-
56-
and::
57-
58-
python setup.py --help-commands
49+
python setup.py develop
5950

6051

6152
Build and runtime requirements
@@ -73,131 +64,116 @@ If you are installing dependencies with a package manager on Linux,
7364
you may need to install the development packages (look for a "-dev"
7465
postfix) in addition to the core packages.
7566

76-
python 2.7 or 3.4 (http://www.python.org/)
77-
Iris requires Python 2.7 or Python 3.4.
7867

79-
numpy 1.9 or later (http://numpy.scipy.org/)
68+
python 2.7 or 3.5+ (http://www.python.org/)
69+
Iris requires Python 2.7 or Python 3.5+.
70+
71+
numpy (http://numpy.scipy.org/)
8072
Python package for scientific computing including a powerful N-dimensional
8173
array object.
8274

83-
scipy 0.10 or later (http://www.scipy.org/)
75+
scipy (http://www.scipy.org/)
8476
Python package for scientific computing.
8577

86-
cartopy 0.11.0 or later (http://github.com/SciTools/cartopy/)
78+
cartopy v0.11.0 or later (http://github.com/SciTools/cartopy/)
8779
Python package which provides cartographic tools for python.
8880

89-
dask 0.15.0 or later (https://dask.pydata.org/)
81+
dask v0.15.0 or later (https://dask.pydata.org/)
9082
Python package for parallel computing.
9183

92-
PyKE 1.1.1 or later (http://pyke.sourceforge.net/)
84+
PyKE v1.1.1 or later (http://pyke.sourceforge.net/)
9385
Python knowledge-based inference engine.
9486

95-
netcdf4-python 0.9.9 or later (http://netcdf4-python.googlecode.com/)
87+
netcdf4-python (http://netcdf4-python.googlecode.com/)
9688
Python interface to the netCDF version 4 C library.
9789
(It is strongly recommended to ensure your installation uses a
9890
thread-safe build of HDF5 to avoid segmentation faults when using
9991
lazy evaluation.)
10092

101-
cf_units 1.0 or later (https://github.com/SciTools/cf_units)
102-
CF data units handling, using udunits (q.v.).
103-
104-
udunits2 2.1.24 or later
105-
(http://www.unidata.ucar.edu/downloads/udunits/index.jsp)
106-
C library for units of physical quantities.
93+
cf_units v1.0 or later (https://github.com/SciTools/cf_units)
94+
CF data units handling, using udunits.
10795

108-
setuptools 0.6c11 or later (http://pypi.python.org/pypi/setuptools/)
96+
setuptools v36.0 or later (http://pypi.python.org/pypi/setuptools/)
10997
Python package for installing/removing python packages.
11098

11199

100+
The full list of packages may be found in the repository at
101+
``requirements/core.txt``.
102+
103+
112104
Optional
113105
''''''''
114106
These are optional packages which you may want to install to enable
115107
additonal Iris functionality such as plotting and
116108
loading/saving GRIB. These packages are required for the full Iris test
117109
suite to run.
118110

119-
gdal 1.9.1 or later (https://pypi.python.org/pypi/GDAL/)
111+
gdal (https://pypi.python.org/pypi/GDAL/)
120112
Python package for the Geospatial Data Abstraction Library (GDAL).
121113

122-
graphviz 2.18 or later (http://www.graphviz.org/)
114+
graphviz (http://www.graphviz.org/)
123115
Graph visualisation software.
124116

125-
iris-grib 0.11 or later
126-
(https://github.com/scitools/iris-grib)
117+
iris-grib (https://github.com/scitools/iris-grib)
127118
Iris interface to ECMWF's GRIB API
128119

129-
matplotlib 1.2.0 (http://matplotlib.sourceforge.net/)
120+
matplotlib (https://matplotlib.org)
130121
Python package for 2D plotting.
131122

132-
mock 1.0.1 (http://pypi.python.org/pypi/mock/)
123+
mock (http://pypi.python.org/pypi/mock/)
133124
Python mocking and patching package for testing. Note that this package
134125
is only required to support the Iris unit tests.
135126

136-
nose 1.1.2 or later (https://nose.readthedocs.io/en/latest/)
127+
nose (https://nose.readthedocs.io/en/latest/)
137128
Python package for software testing. Iris is not compatible with nose2.
138129

139-
pep8 1.4.6 (https://pypi.python.org/pypi/pep8)
130+
pep8 (https://pypi.python.org/pypi/pep8)
140131
Python package for software testing.
141132

142-
pandas 0.11.0 or later (http://pandas.pydata.org)
133+
pandas (http://pandas.pydata.org)
143134
Python package providing high-performance, easy-to-use data structures and
144135
data analysis tools.
145136

146-
PythonImagingLibrary 1.1.7 or later (http://effbot.org/zone/pil-index.htm)
137+
PythonImagingLibrary (http://effbot.org/zone/pil-index.htm)
147138
Python package for image processing.
148139

149-
pyugrid 0.1.1 or later (https://github.com/pyugrid/pyugrid)
140+
pyugrid (https://github.com/pyugrid/pyugrid)
150141
A Python API to utilize data written using the unstructured grid
151142
UGRID conventions.
152143

153-
shapely 1.2.14 (https://github.com/Toblerity/Shapely)
144+
shapely (https://github.com/Toblerity/Shapely)
154145
Python package for the manipulation and analysis of planar geometric
155146
objects.
156147

157-
mo_pack 0.1.0dev0 (https://github.com/SciTools/mo_pack)
148+
mo_pack (https://github.com/SciTools/mo_pack)
158149
A Python wrapper to libmo_unpack, giving WGDOS packing and unpacking.
159150

160-
* Those packages have been tested with a specific build.
161151

162-
Packed PP
163-
=========
164-
The libmo_unpack library can be used by Iris for decoding/unpacking
165-
PP files or Fields files that use an lbpack value of 1 or 4. This
166-
library is open source, licensed under the 2-clause BSD licence.
167-
It can be obtained from http://puma.nerc.ac.uk/trac/UM_TOOLS/wiki/unpack.
152+
Generating conda requirements
153+
'''''''''''''''''''''''''''''
154+
155+
Requirements for Iris are stored in the ``requirements`` directory in the root of the source repository.
156+
It is possible to generate a requirements file suitable for conda use with::
168157

169-
Use of this library is not enabled by default. If this library is
170-
available its use can be enabled by installing Iris with the following
171-
command::
158+
python requirements/gen_conda_requirements.py > conda_requirements.txt
172159

173-
python setup.py --with-unpack install
160+
This may be installed with::
174161

175-
Note that if this library and/or its associated header files are installed
176-
in a custom location then additional compiler arguments may need to be
177-
passed in to ensure that the Python extension module linking against it
178-
builds correctly::
162+
conda create -n my_iris_env --file conda_requirements.txt
179163

180-
python setup.py --with-unpack build_ext -I <custom include dir> \
181-
-L <custom link-time libdir> -R <custom runtime libdir> install
164+
Alternatively, a full requirements file that includes all optional dependencies can be produced with::
165+
166+
python requirements/gen_conda_requirements.py --groups all > conda_requirements.txt
182167

183168

184169
Custom site configuration
185170
=========================
186171
The default site configuration values can be overridden by creating the file
187172
``iris/etc/site.cfg``. For example, the following snippet can be used to
188-
specify a non-standard location for your udunits library::
173+
specify a non-standard location for your dot executable::
189174

190175
[System]
191-
udunits2_path = /path/to/libudunits2.so
176+
dot_path = /usr/bin/dot
192177

193178
An example configuration file is available in ``iris/etc/site.cfg.template``.
194179
See :py:func:`iris.config` for further configuration options.
195-
196-
197-
Packaged distributions
198-
======================
199-
The Enthought Python Distribution (EPD)
200-
http://www.enthought.com/products/epd.php for Windows, OS X or
201-
Redhat provides some of the dependencies for Iris as does Python (x, y)
202-
https://python-xy.github.io/ which tends to be updated a
203-
bit more frequently.

MANIFEST.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ recursive-include lib/iris/etc *
77
include lib/iris/fileformats/_pyke_rules/*.k?b
88
include lib/iris/tests/stock*.npz
99

10+
include requirements/*.txt
11+
1012
# File required to build docs
1113
recursive-include docs Makefile *.js *.png *.py *.rst
1214
prune docs/iris/build

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ Iris
33

44
[![Join the chat at https://gitter.im/SciTools/iris](https://badges.gitter.im/SciTools/iris.svg)](https://gitter.im/SciTools/iris?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
55
[![Build Status](https://api.travis-ci.org/repositories/SciTools/iris.svg?branch=master)](https://travis-ci.org/SciTools/iris/branches)
6-
[![DOI](https://zenodo.org/badge/doi/10.5281/zenodo.51860.svg)](https://dx.doi.org/10.5281/zenodo.51860)
6+
[![DOI](https://zenodo.org/badge/5312648.svg)](https://zenodo.org/badge/latestdoi/5312648)
77
[![Documentation for master branch ](https://img.shields.io/badge/docs-master-blue.svg)](https://scitools-docs.github.io/iris/master/index.html)
88

9-
(C) British Crown Copyright 2010 - 2017, Met Office
9+
(C) British Crown Copyright 2010 - 2018, Met Office
1010

1111
Iris is a powerful, easy to use, community-driven Python library for
1212
analysing and visualising meteorological and oceanographic data sets.
@@ -53,7 +53,7 @@ There is also a documentation build for the latest code in the main GitHub repos
5353
Copyright and licence
5454
---------------------
5555

56-
(C) British Crown Copyright 2010 - 2017, Met Office
56+
(C) British Crown Copyright 2010 - 2018, Met Office
5757

5858
This file is part of Iris.
5959

docs/iris/src/_templates/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103
<span class="linkdescr">extra information on specific technical issues</span></p>
104104
</li>
105105
<li>
106-
<p class="biglink"><a class="biglink" href="whatsnew/2.0a0.html">What's new in Iris 2.0a0?</a><br/>
106+
<p class="biglink"><a class="biglink" href="whatsnew/2.0.html">What's new in Iris 2.0?</a><br/>
107107
<span class="linkdescr">recent changes in Iris's capabilities</span></p>
108108
</li>
109109
</ul>

docs/iris/src/developers_guide/dask_interface.rst

Lines changed: 0 additions & 35 deletions
This file was deleted.

docs/iris/src/developers_guide/index.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,3 @@
3838
tests.rst
3939
deprecations.rst
4040
release.rst
41-
dask_interface.rst

docs/iris/src/userguide/cube_maths.rst

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,7 @@ but with the data representing their difference:
6666

6767
Notice that the coordinates "time" and "forecast_period" have been removed
6868
from the resultant cube;
69-
this is because these coordinates differed between the two input cubes.
70-
For more control on whether or not coordinates should be automatically
71-
ignored :func:`iris.analysis.maths.subtract` can be used instead.
69+
this is because these coordinates differed between the two input cubes.
7270

7371

7472
.. _cube-maths_anomaly:

docs/iris/src/userguide/loading_iris_cubes.rst

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,20 @@ then specific STASH codes can be filtered::
233233
For advanced usage there are further examples in the
234234
:class:`iris.Constraint` reference documentation.
235235

236+
237+
Constraining a circular coordinate across its boundary
238+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
239+
240+
Occasionally you may need to constrain your cube with a region that crosses the
241+
boundary of a circular coordinate (this is often the meridian or the dateline /
242+
antimeridian). An example use-case of this is to extract the entire Pacific Ocean
243+
from a cube whose longitudes are bounded by the dateline.
244+
245+
This functionality cannot be provided reliably using contraints. Instead you should use the
246+
functionality provided by :meth:`cube.intersection <iris.cube.Cube.intersection>`
247+
to extract this region.
248+
249+
236250
.. _using-time-constraints:
237251

238252
Constraining on Time

docs/iris/src/whatsnew/2.0.rst

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ What's New in Iris 2.0.0
22
************************
33

44
:Release: 2.0.0rc1
5-
:Date: 2017-10-30
5+
:Date: 2018-01-11
66

77

88
This document explains the new/changed features of Iris in version 2.0.0
@@ -192,6 +192,19 @@ Incompatible Changes
192192
* If the `packing` argument to `iris.save` is a dictionary, an error is raised
193193
if it contains any keys other than 'dtype', 'scale_factor' and 'add_offset'.
194194

195+
* The deprecated :mod:`iris.fileformats.grib` was removed. All Iris GRIB
196+
functionality is now delivered through :mod:`iris-grib`.
197+
198+
* In Iris v1 it was possible to configure Iris to log at import time through
199+
`iris.config.LOGGING`. This capability has been removed in Iris v2.
200+
201+
* When coordinates have no well defined plot axis, :mod:`iris.plot` and
202+
:mod:`iris.quickplot` routines now use the order of the cube's dimensions
203+
to determine the coordinates to plot as the x and y axis of a plot.
204+
205+
* The cf_units dependency version has been updated to v1.2.0, which prints
206+
shorter unit strings. For example, the unit ``meter-second^-1`` is now
207+
printed as ``m.s-1``.
195208

196209

197210
Deprecation removals

docs/iris/src/whatsnew/contributions_2.0/incompatiblechange_2017-Oct-27_grib_removed.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)