2017-09-15 Simon Pfreundschuh * typhon/arts/workspace/workspace.py(__setattr__): - Added setattr member function to assign values to WSVs. - Removed some clutter. 2017-09-13 Lukas Kluft * CONTRIBUTING.md: 2017-09-07 Simon Pfreundschuh * typhon/arts/workspace/api.py: - Fixed handling of environment variables - Removed recursive search for controlfiles 2017-09-07 Lukas Kluft * README.md: Added a short paragraph on the typhon configuration file. * typhon/__init__.py: Import ``typhon.config``. * typhon/environment.py: Added a reference to the ``typhon.config`` module to the docstring. 2017-09-06 Lukas Kluft * typhon/arts/common.py (run_arts): Make use of the new `typhon.environment` mechanism. The dARTS_BUILD_PATH, ARTS_INCLUDE_PATH and ARTS_DATA_PATH should now be considered properly. * typhon/arts/workspace/api.py: Quick fix of inconsistent handling of environment variables. 2017-09-06 Lukas Kluft * typhon/environment.py: Handle environment variables. Combine the classical CLI environment variable approach and the settings in the typhon configuration file. **Environment variables precede settings in the config file.** * doc/conf.py, doc/typhon.environment.rst: Added `typhon.environment` to documentation. * doc/modules.rst, typhon/arts/workspace/__init__.py, typhon/arts/workspace/api.py: Make use of constant variables in `typhon.environment` instead of checking the environment. 2017-09-06 Lukas Kluft * typhon/config.py (_Configurator): Cleaned the object implementation. * (_Configurator.__call__, get_config): Added a keyword argument to specify config section. 2017-09-04 Simon Pfreundschuh Some smaller fixes for interactive python interface. * typhon/arts/workspace/agendas.py: - Decode error byte string returned by execute_controlfile to properly display ARTS error messages. * typhon/arts/workspace/methods.py: - Raise value error when group of generic input doesn't match the expected one. * typhon/arts/workspace/variables.py: - Update array interface when calling value on a WSV 2017-09-04 Lukas Kluft Added a function to plot a colorized series of bars. * typhon/plots/plots.py (colored_bars): Function to plot a colorized bar plot. * doc/typhon.plots.rst: Added `colored_bars` to documentation. 2017-08-30 Oliver Lemke * typhon/version.py: Set DEVBUILD back to True after release. 2017-08-30 Oliver Lemke * typhon/version.py: 0.4.0 Release. * doc/typhon.arts.workspace.rst: Reorder modules alphabetically and list their classes so they appear in the sphinx documentation. * typhon/arts/workspace/__init__.py, typhon/arts/workspace/agendas.py, typhon/arts/workspace/api.py, typhon/arts/workspace/methods.py, typhon/arts/workspace/workspace.py: Small changes to docs for better sphinx formatting. 2017-08-29 Gerrit Holl * typhon/datasets/tovs.py(HIRS._read): - Fix KeyError in error message formatting 2017-08-28 Oliver Lemke * typhon/datasets/_tovs_defs.py, typhon/datasets/filters.py, typhon/datasets/tovs.py: Replace formatted strings (breaks python 3.5 compatibility) with traditional format strings. 2017-08-27 Lukas Kluft * doc/pyplots/plot_density.py, doc/pyplots/plot_difference.py, doc/pyplots/plot_phase.py, doc/pyplots/plot_speed.py, doc/pyplots/plot_temperature.py, doc/pyplots/plot_velocity.py, doc/pyplots/stylesheet_gallery.py: Do not import typhon.plots explicitly as it is imported using every typhon import. Use the rasterized option when using `pcolormesh`. This should decrease the build time significantly. 2017-08-27 Lukas Kluft * doc/typhon.math.rst: Added `squeezable_logspace`. * typhon/math/common.py (squeezable_logspace): Added examples and fixed broken markup in docstring. 2017-08-26 Lukas Kluft Fixed documentation with and without ARTS API. * doc/typhon.arts.rst, doc/typhon.arts.workspace.rst: Moved documentation of workspace module to separate file. This file can be excluded when the documentation is build without ARTS API. Fixed references for automodules for some modules (most likely copy and paste remnants.) * doc/conf.py: Exclude `typhon.arts.workspace.rst` for builds without ARTS API. Removed shlex from list of imports as it was not used. * doc/modules.rst: Include typhon.arts.workspace to toctree. 2017-08-26 Simon Pfreundschuh Fixed some problems with passing parameters when calling WSMs and added functionality to define agendas using python function syntax. * typhon/arts/workspace/__init__.py: - Export arts_agenda decorator * typhon/arts/workspace/agendas.py: - methods to clear agendas and add WSMs to them - method to convert agendas to VariableValueStruct * typhon/arts/workspace/api.py: - Add generic interface to convert python object to VariableValueStructs - Add declarations for new methods in C API * typhon/arts/workspace/methods.py: - Separate parsing and parameter lookup from actual WSM call to facilitate reuse * typhon/arts/workspace/variables.py: - Add agendas to returnable types * typhon/arts/workspace/workspace.py: - Added some decorator black magic that allows defining ARTS agendas using python function syntax 2017-08-25 Gerrit Holl * typhon/physics/units/em.py(SRF.make_lookup_table): - fill value for high end should be something ridiculously high, not 0. Arguably bounds_error should be True, or some iterative method to estimate BTs should be used when out of range, but the former is too inflexible and the latter is too much work to implement right now, in particular with vectorisation in mind. 2017-08-25 Lukas Kluft * typhon/math/common.py (squeezable_logspace): Function to create a grid that is squeezed around a fixpoint. * typhon/math/tests/test_math.py: Added methods to test the basic functionality of ``squeezable_logspace``. 2017-08-25 Richard Larsson * typhon/arts/griddedfield.py: Added functional argument to refine grids. Allows the refinement in pressure to be linear in log-space. Use by setting input fun=np.log10 or similar. 2017-08-24 Oliver Lemke * typhon/arts/workspace/api.py: Add argtypes (and restype) definition for destroy_agenda function. Fixes wrong pointer value being passed when freeing an Agenda and causing a segfault. 2017-08-24 Gerrit Holl * typhon/datasets/tovs.py(HIRS._read): - Bugfix: apply filter firstline before trying any calibration, and outside of it. - Point out that NOAA-6, -7, -8, and -9 also have a header formatting problem before 1985-10-31 2017-08-23 Simon Pfreundschuh Adapts interface to a few changes in the C API. Adds functionality for returning Sparse and ArrayOfIndex and passing ArrayOfIndex variables. Fixed problem with WSVs that access names of WSVs (ReadXML) * typhon/arts/workspace/api.py: - Update layout of VariableValueStruct * typhon/arts/workspace/variables.py: - Extended value() class method to support Sparse and ArrayOfIndex - Added ArrayOfIndex to supported groups in get_group_id. * typhon/arts/workspace/methods.py: - Fixed but in super-generic overlaod resolution - Create methods now support anonymous creation and return the WSV. * typhon/arts/workspace/workspace.py: - Updated implementation and documentation to be consistent with new memory management in C API. 2017-08-23 Oliver Lemke * setup.py: Add dependency on scikit-learn. 2017-08-23 Oliver Lemke * typhon/arts/workspace/__init__.py: Only import ARTS interface modules if ARTS_BUILD_PATH is set, otherwise output warning. Prevents nosetests from failing. * typhon/arts/workspace/api.py: Simplify arts_build_path check. Fix typo. 2017-08-22 Simon Pfreundschuh * doc/typhon.arts.rst: Added workspace sub-module to sphinx documentation. * typhon/arts/workspace/__init__.py: Module file for new workspace sub-module. * typhon/arts/workspace/workspace.py: Implementation of Workspace class. * typhon/arts/workspace/api.py: Interface to ARTS C API * typhon/arts/workspace/variables.py: Class and functions for handling ARTS WSVs * typhon/arts/workspace/methods.py: Class and functions for handling ARTS WSMs * typhon/arts/workspace/agendas.py: Class and functions for handling ARTS agendas. 2017-08-21 Gerrit Holl (HIRS._update_firstline_db): - Don't crash when fully contained in previous when considering max but not -1 2017-08-21 Gerrit Holl * typhon/datasets/tovs.py: (HIRS._read): - Remove overlaps before, not after, removing lines due to time sequence errors, to stop counting errors - Handle situation where dataname is empty, such as for TIROS-N (HIRS._filter_firstline): - Handle situation where dataname is empty, such as for TIROS-N (HIRS._update_firstline_db): - Handle situation where dataname is empty, such as for TIROS-N - When lines are out of order, do not use the last line of the previous granule as a firstline-db reference, but use the one with the latest time (.max()). (HIRS.get_dataname): - Update to new API for get_dataname based on new need for HIRSPOD (see below) (HIRS.apply_calibcount_filter): - Update filter name (HIRS._convert_temp): - Use filterer provided for PRT temperature filter (HIRSPOD.get_dataname): - Handle situation where dataname is empty, such as for TIROS-N. This has grown a robust-flag such that it either fails with ValueError or invents some horrible dataname. 2017-08-21 Lukas Kluft * typhon/utils/__init__.py: Minor PEP8 fixes. * (image2mpeg): Allow to set the resolution of the created video file. 2017-08-18 Lukas Kluft Improved usabilty of Timer class. * typhon/utils/__init__.py (Timer): It is possible to pass additional information on the process being timed using the `info` keyword. If no information is given, a default value depending on the context is used e.g. the function name when used as decorator. It is also possible to alter the timeformat. Removed unnecessary lines and updated docstrings. 2017-08-18 Richard Larsson * typhon/arts/catalogues.py: Added len for ArrayOfLineRecord. Added __repr__ for CIARecord * typhon/arts/griddedfield.py: Changed repr to be more informative when names are not given. When you use repr, the true value of None is not important. Also changed so refining grids work for over-dimensioned fields (e.g., if you need gridded field for more than one latitude, but field is only available for one latitude, then this can expand it) * typhon/geodesy/__init__.py: Bug-fix and added simple line-sphere intersection helper function. 2017-08-17 John Mrziglod * typhon/spareice/handlers/__init__.py: Added parse_fields() and select() methods. * typhon/spareice/datasets/__init__.py Added caching in retrieve_time_coverage() method. Added AccumulatedData support. Added documentation. * typhon/spareice/datasets/accumulated_data.py Added experimental AccumulatedData class which provides convenient plotting functions. * typhon/spareice/handlers/cloudsat.py Added field parsing support. * typhon/spareice/handlers/cloudsat.py Added field parsing support. * typhon/spareice/handlers/common.py Added AccumulatedData support. * typhon/spareice/handlers/tovs.py Added field parsing support. Fixed slow pixel time interpolation. * typhon/spareice/collocations/datasets.py Changed collocation finding algorithm. Seperated spatial and temporal collocation finding. Changed leafsize of k-d trees. Fixed bugs of overlapping files. Added documentation. * typhon/plots/plots.py Added experimental worldmap and plot_3d functions. 2017-08-10 Lukas Kluft * typhon/arts/griddedfield.py (GriddedField.get()): Added a method the conveniently extract named fields from a GriddedField of arbitrary dimension. * typhon/arts/tests/test_griddedfield.py: Added test cases for the new GriddedField.get() method. 2017-08-02 John Mrziglod * typhon/spareice: Added dataset, collocation and SPARE-ICE modules. * typhon/spareice/dataset/__init__.py (make_plots): Moved cartopy and matplotib imports to function. * typhon/arts/tests/test_griddedfield.py: Removed unnecessary print statement. 2017-07-27 Lukas Kluft * typhon/plots/common.py (supcolorbar): Fixed reference in docstring. 2017-07-27 Gerrit Holl * typhon/datasets/filters.py: Added - Forgot to add earlier. Contains filter classes. 2017-07-27 Gerrit Holl * typhon/datasets/dataset.py(Dataset._add_gran_to_data): - Don't cont.load() when empty, otherwise we trigger https://github.com/pydata/xarray/issues/1329 * typhon/datasets/tovs.py(HIRS._read): - Catch the situation where time has duplicates but scanline number does not * typhon/utils/__unit__.py(concat_each_time_coordinate): - Allow for empty time coordinates and skip those dimensions, otherwise we trigger https://github.com/pydata/xarray/issues/1329 2017-07-25 Gerrit Holl * typhon/atmosphere.py(relative_humidity): - Fix typo in docstring * typhon/datasets/dataset.py(Dataset._add_gran_to_data): - For slices, ensure we're doing a<=x * typhon/arts/griddedfield.py(GriddedField.to_xarray): - Added method to convert to xarray DataArray. * typhon/arts/tests/test_griddedfield.py: - Added method to test this new functionality. Unfortunately, I'm not sure how to run the test suite, as 'python3.6 setup.py test' ran 0 tests. 2017-07-23 Gerrit Holl * typhon/datasets/dataset.py(DatasetDeque.move): - Make sure to move edges etc. even when reading fails. 2017-07-22 Gerrit Holl * typhon/datasets/dataset.py: (Dataset._ensure_large_enough) (Dataset._add_pseudo_fields) (Dataset._read_ndarray): - Don't convert regular ndarrays into masked arrays (DatasetDeque.move): - Base new edges on self.edges as well as self.data["time"], otherwise we may be consistently off forever if we start off with partly unreadable data * typhon/datasets/tovs.py (HIRS.as_xarray_dataset): - Don't assume masked arrays * typhon/physics/units/em.py(estimate_band_coefficients): - Make sure regular expression can handle scientific notation 2017-07-21 Gerrit Holl * typhon/datasets/_tovs_defs.py: - Added class for minor frame flags * typhon/datasets/dataset.py: (Dataset.read_period): - Fix bug on formatting InvalidDataError (MultiFileDataset.find_granules): - Actually check that matched regular expression fields correspond to what was provided. This is relevant if different versions may be stored in the same directory. (DatasetDeque): - Update various methods, can now provide arguments that will be passed on to read_period. * typhon/datasets/tovs.py(HIRS.apply_calibcount_filter): - Move filtering to external class (in filters.py) that can be passed on by composition. Thanks to John Mrziglod for inspiring this good idea, although I'm not ready to move existing inheritance-based stuff yet. * typhon/physics/units/tools.py(UnitsAwareDataArray): - Added .mean() method * typhon/utils/__init__.py, typhon/utils/metaclass.py: - Added reference to notice of permission for MIT in SO post 2017-07-17 Lukas Kluft * typhon/plots/common.py (supcolorbar): Function to add a common colorbar for all subplots in a figure. * doc/typhon.plots.rst: Added `supcolorbar` to list of functions. 2017-07-07 Gerrit Holl * typhon/datasets/_tovs_defs.py, typhon/datasets/dataset.py, typhon/datasets/tovs.py, typhon/plots/common.py, typhon/utils/__init__.py, typhon/utils/metaclass.py: At all places where we derive code from Stack Overflow, point out that either this has to be CC-BY-SA 3.0 licensed, or that we believe it does not count as a derivative work. I am not convinced the former is enough, but it's better than nothing. See e-mail to typhon mailing list 2017-07-07 titled “A warning on using code snippets from Stack Overflow”. 2017-07-07 Gerrit Holl * typhon/datasets/_tovs_defs.py: - Refactor temperature-related fields and add a translation table between short and long names * typhon/datasets/tovs.py: - Fix small bug in error message 2017-06-30 Gerrit Holl * typhon/datasets/dataset.py(Dataset.read): - Do not impose dependencies of my_pseudo_fields when those fields were not asked for in the reader * typhon/datasets/tovs.py: (HIRS._read): - Comment out catch_warnings as long as bug at http://bugs.python.org/issue29672 remains. Be aware that the resulting warning is spurious, such as confirmed at https://github.com/numpy/numpy/issues/8383 (HIRS.as_xarray_dataset): - Only assign lon/lat coordinates if lon/lat actually present in fields. 2017-06-28 Gerrit Holl * typhon/datasets/tovs.py: - Don't log on root level, as if this happens before logging.basicConfig was set, this will become ineffective! 2017-06-28 Lukas Kluft * README.md: Updated installation recommendations. The installation guide for developers now includes a hint to install the package in the home directory not system wide. * typhon/plots/common.py (label_axes): Minor change in example. 2017-06-17 Lukas Kluft * typhon/plots/common.py (label_axes): Function add a label to each axis in a figure conveniently. * doc/typhon.plots.rst: Added `label_axes()` to documentation. 2017-06-16 Gerrit Holl * typhon/datasets/dataset.py(Dataset): - Rather than hardcoding time-field to be "time", set this in an attribute. For some datasets it may be "date"? * typhon/datasets/tovs.py(HIRS.__init__): - Set start_date, end_date from _tovs_defs.HIRS_periods 2017-06-12 Gerrit Holl * typhon/datasets/tovs.py(HIRS2): - Add more aliases for referring to older satellites. * typhon/physics/units/em.py(SRF.estimate_band_coefficients): - In ad-hoc band correction estimate method, fix regular expression so that it works for older HIRS (before NOAA-10). This contributes to the fix of HIRS FCDR #110. 2017-06-12 Gerrit Holl * typhon/datasets/_tovs_defs.py: - Add some of the flags used in HIRS/2, HIRS/3, HIRS/4. For now only adding the flags I'm acting upon, others later. Currently used for FCDR HIRS processing. Note that to make full use of these flags you want to use Python 3.6, but it should be possible to use them in Python 3.5 as well, just more in a more limited way. * typhon/datasets/tovs.py(HIRSKLM.get_mask_from_flags): - Added note/reminder to self to migrate hardcoded bitmasks to flag positinos defined in _tovs_defs.py 2017-06-06 Oliver Lemke * typhon/physics/em.py (planck, planck_wavelength, planck_wavenumber, rayleighjeans_wavelength, radiance2planckTb, radiance2rayleighjeansTb, frequency2wavelength, wavelength2frequency, wavelength2wavenumber, wavenumber2wavelength): Introduce a np.divide to avoid a runtime error being thrown if function is called with a float instead of an numpy array. Now for all such cases a numpy warning is consistently issued. This makes the functions behave in line with how numpy's / scipy's own functions work. If the user wants to suppress the warning, the means numpy offers itself should be used for this, e.g.: with np.errstate(divide='ignore'): radiance2plancktb(f, r) 2017-06-04 Lukas Kluft * README.md: Added a short README file. The file is meant to give short instructions on how to get started when developing typhon. The common way to provide documentation is still Sphinx! 2017-05-31 Gerrit Holl * typhon/datasets/_tovs_defs.py: - Added flag meanings for HIRS/3 and HIRS/4 * typhon/datasets/dataset.py(Dataset.verify_mandatory_fields): - Do not assume incorrect fields are passed as strings or will raise wrong exception. * typhon/datasets/tovs.py(HIRS): - Remove spurious comment 2017-05-26 Lukas Kluft * typhon/__init__.py: Import `typhon.plots` by default. The plotting submodule is now automatically loaded when typhon is imported. * typhon/plots/plots.py: * (HectoPascalFormatter, HectoPascalLogFormatter): Added example plots and cross-references. 2017-05-22 Oliver Lemke * typhon/arts/xml/read.py: Fix wrong dtype in reading of Matrix/Tensor from binary xml file. * typhon/arts/xml/tests/test_matpack_types.py: Add additional tests for Matrix/Tensor to catch this error in the future. * typhon/arts/xml/write.py: Remove FutureWarning. 2017-05-19 Oliver Lemke * typhon/arts/xml/read.py, typhon/arts/xml/write.py: Add ASCII XML read/write support for Complex types. * typhon/arts/xml/tests/test_matpack_types.py: Add ASCII test cases for ComplexMatrix and ComplexVector. 2017-05-19 Oliver Lemke * typhon/arts/utils.py, typhon/arts/xml/names.py, typhon/arts/xml/read.py, typhon/arts/xml/write.py: Add experimental support for complex Vector, Matrix and Tensor types. Only binary files are supported for now. * typhon/arts/xml/tests/test_matpack_types.py: Add test for ComplexVector and ComplexMatrix. 2017-05-19 Lukas Kluft * typhon/physics/tests/test_physics.py: Adapated test case to the fixed version of `planck_wavenumber`. 2017-05-18 Gerrit Holl * typhon/physics/em.py(planck_wavenumber): SERIOUS BUGFIX There was a typo in the equation. If you ever used it, please retract all your papers and return your PhD and other degrees because the output was INCORRECT. 2017-05-18 Lukas Kluft * Changed format for version number! * typhon/version.py: The format of the module version number has changed. The new format is recognized by pip (and IDEs like PyCharm). The new format is: .. Example of resulting version number: 0.3.6r10443 2017-05-16 Gerrit Holl * typhon/datasets/_tovs_defs.py: - Added dictionary with NOAA satellite numbers. Made something up for tirosn, metopa, metopb. * typhon/datasets/dataset.py: (Dataset): - Added attributes read_returns (set to either ndarray or xarray) and concat_coor (if the concatenation coordinate for xarray datasets is not the time one). (Dataset.read_period): - Bugfix in logging message, want not satname (which is not always extant) but locator_args (more generic). (Dataset._apply_limits_and_filters): - Filters works for xarray. Limits does not. (Dataset._finalise_arr): - Permit using a non-time coordinate for concatenation of xarray datasets. (Dataset._add_pseudo_fields): - Support either ndarray or xarray. (Dataset.combine): - Add field time_name which can be customised to be different than 'time'. - Support either ndarray or xarray. * typhon/datasets/tovs.py: (TOVSCollocatedDataset.combine): - Support either ndarray or xarray. (HIRSHIRS._read): - Support either ndarray or xarray. * typhon/utils/__init__.py(get_time_dimensions): - Tell me the time dimensions of an xarray dataset. 2017-05-15 Lukas Kluft * Fixed string representation of GriddedFields objects. * typhon/arts/griddedfield.py (GriddedField.__repr__): Catch all errors when creating the string representation for a GriddedField object. Use a default-like style as fallback. * typhon/arts/tests/test_griddedfield.py: Test string representation for empty and non-empty GriddedField. 2017-05-08 Lukas Kluft * typhon/arts/griddedfield.py (GriddedField.extract_slice): Added a method to slice whole GriddedFields. The return value is a new GriddedField object with sliced grid and data array. * typhon/arts/tests/test_griddedfield.py: Test proper GriddedField slicing. 2017-05-08 Oliver Lemke * doc/_static/increased_width.css: Increase width to prevent plots from being scaled down. 2017-05-05 Gerrit Holl * typhon/datasets/_tovs_defs.py: - Rather make copies of the coding dicts so I don't inadvertently change where I don't want to. - minorframe_quality_flags and angles only for HIRS/3/4 2017-05-05 Lukas Kluft * typhon/plots/plots.py: * (channels): Fixed handling of second offset. Now correctly used around the position of the first passband. * (HectoPascalFormatter): Simplified implementation. Replaced the `partial` solution with an explicit function. This also allows a proper docstring. * (profile_p): Fixed docstring description (report by Oliver). 2017-05-05 Lukas Kluft * typhon/plots/plots.py (channels): Function to plot instrument channels for passband-type sensors. * doc/typhon.plots.rst: Include `typhon.plots.channels`. 2017-05-04 Gerrit Holl * typhon/datasets/_tovs_defs.py: - Some bugfixes, HIRS2 processing might work soon. * typhon/datasets/tovs.py(HIRS.as_xarray_dataset): - Add attributes to coordinates as well as data variables. 2017-05-04 Lukas Kluft * typhon/plots/plots.py (HectoPascalFormatter): Implemented a workaround to make the Formatter callable. This ensures consistent usage with other formatters. * typhon/utils/__init__.py (image2mpeg): Raise an exception if the `ffmpeg` subprocess fails. * typhon/utils/tests/test_utils.py: Test the behaviour of `test_utils` when no input is found. 2017-05-03 Gerrit Holl * typhon/datasets/_tovs_defs.py: - Replace fill values by the standard NetCDF ones, except for floats and doubles, where we keep nan. This is for within the FIDUCEO project. - Added data vars props for HIRS2. I think processing HIRS2 now works again. - Renamed hrs_satloc for HIRS2, instead extract directly with height and lza. * typhon/datasets/dataset.py(HomemadeDataset.find_granule_for_time): - When estimating filename, pass on information for any attributes, not only the ones defined within the present class. * typhon/datasets/tovs.py(HIRSPOD.get_other): - Adapt lza_approx now that we extract height and lza individually. * typhon/utils/__init__.py(concat_each_time_coordinate): - Untimed vars should only be the data vars, not the coordinates. 2017-05-02 Lukas Kluft * typhon/utils/__init__.py (deprecated): Allow to pass additional information message to the decorator. 2017-05-01 Lukas Kluft * typhon/utils/__init__.py (deprecated): Decorator to raise a simple deprecation warning. * typhon/utils/tests, typhon/utils/tests/test_utils.py: Test module for `typhon.utils` functions. Currently containing a test for deprecation warnings. * doc/typhon.utils.rst: Added `deprecated` to documentation. 2017-04-27 Lukas Kluft * typhon/arts/xml/tests/test_xml.py: Fixed path to reference files. 2017-04-27 Lukas Kluft * typhon/arts/xml/__init__.py (load_directory): Improved inline and docstring documentation. * typhon/arts/xml/tests/test_xml.py: Added tests for high-level XML functions. Currently containing two test for `load_directory()`. 2017-04-27 Lukas Kluft * typhon/arts/xml/__init__.py (load_directory): Improved readability and general function structure. 2017-04-25 Lukas Kluft * typhon/plots/stylelib/typhon.mplstyle: Adapted the typhon stylesheet to fit well with the changing defaults in matplotlib 2.0. * typhon/plots/stylelib/typhon-classic.mplstyle: The old typhon stylesheet. * typhon/plots/stylelib/typhon-fullcycler.mplstyle, typhon/plots/stylelib/typhon-geometry.mplstyle: Removed the separate geoemetry and color-cycler as they are probably unused. * doc/pyplots/stylesheet_gallery.py: Modified the test script for better appearance. Plot more lines to show the cycling through linestyles even when using the larger color-cycler in matplotlib 2.0. * typhon/math/common.py (nlogspace): Added example. * typhon/plots/plots.py: Removed forgotten debug `print()`. 2017-04-24 Lukas Kluft * typhon/plots/plots.py: * (HectoPascalFormatter, HectoPascalLogFormatter): Added two Formatter to create labels for profile plots. * (profile_p, profile_p_log): Use newly implemented Formatter. * doc/typhon.plots.rst: Added Formatter to documentation. 2017-04-19 Gerrit Holl * typhon/utils/__init__.py(concat_each_time_coordinate): - Do not lose attributes, please. 2017-04-19 Gerrit Holl * typhon/datasets/dataset.py: (Dataset.add_gran_to_data): - Always load contents - Fix bug when too many files are empty (NetCDFDataset._read): - When returning xarray dataset, subselect fields as required. Pseudo-fields still not supported. (HomemadeDataset._read): - Make sure we delegate the .read(...) method fields argument. 2017-04-18 Lukas Kluft * typhon/math/tests, typhon/math/tests/test_math.py: Added tests for most common math functions. 2017-04-18 Richard Larsson * typhon/arts/internals.py: Added and moved internal classes over * typhon/arts/utils.py: Moved as_quantumnumbers here * typhon/arts/catalogues.py: Removed ARTSCAT5, PartitionFunctions, LineMixing, PressureBroadening, Rational and all imports not related to these * {typhon/arts/types.py,doc/typhon.arts.rst}: mimics catalogues for internals.py classes 2017-04-13 Lukas Kluft * doc/conf.py: Added numpy yo list of interpshinx packages. Intersphinx now links to the Python 3.6 documentation. * typhon/math/common.py (integrate_column): Improved documentation of input parameters. Added an example to the docstring. 2017-04-13 Lukas Kluft * typhon/math/common.py: * (integrate_column): Use `np.trapz` for integration. This allows more flexible usage of the function (e.g. multidimensional input). * (interpolate_halflayers): Function to return linear interpolated values for halflayers. * typhon/atmosphere.py (iwv): Support multidimensional input. * typhon/tests/test_atmosphere.py: Added a test for mutlidimensional input to `atmosphere.iwv()`. * doc/typhon.math.rst: Added `interpolate_halfleves`. * doc/typhon.utils.rst: Removed `print_timing`. 2017-04-12 Oliver Lemke * typhon/atmosphere.py (relative_humidity): Test successful. 2017-04-12 Oliver Lemke * typhon/atmosphere.py (relative_humidity): Intentional temporary breakage to test hudson failure mail. 2017-04-12 Oliver Lemke * Dummy commit to test build trigger to automatically run test suite on typhon commits. 2017-04-12 Lukas Kluft * typhon/utils/__init__.py (print_timing): Removed decorator `print_timing`. `Timer` objects can be used as function decorators instead. 2017-04-11 Gerrit Holl * typhon/datasets/_tovs_defs.py: Add least_siginficant_digit hint, fix calendar coding * typhon/datasets/dataset.py: Reading period of xarray now works! * typhon/datasets/tovs.py: Some bugfixes * typhon/physics/units/em.py: Bugfixes * typhon/physics/units/tools.py: Bugfixes 2017-04-07 Richard Larsson * typhon/arts/catalogues.py: Fixed an error I introduced in last entry. Also added a partition_functions class to compute partition sums the same way as in ARTS using the cross_section method of ARTSCAT5. Can be initialized directly from SpeciesAuxData (load arts-xml-data tips.xml). Fun pass time: load some ARTSCAT5 lines from arts-xml-data (the Perrin-folder), also load the tips.xml file, and then run the cross-section calculations for a few temperatures, plotting the results, to clearly see the distribution of line strengths shift from low to high frequencies as temperature increases 2017-04-07 Lukas Kluft * typhon/plots/plots.py: * (profile_p, profile_p_log, profile_z): Added functions for basic atomspheric profile plots. * (fmt_hectopascal): Formatter to create pretty hectopascal labels for profile plots. * doc/typhon.plots.rst: Added new functions to documentation. 2017-04-06 Gerrit Holl * typhon/datasets/dataset.py(Dataset._add_gran_to_data): - Further preparation for supporting xarray * typhon/datasets/tovs.py(HIRS.filter_firstline): - Did I just fix or introduce an off-by-one-bug? Either way, this method is ultimately on its way out in favour of filter_bestline still to be implemented, so I will accept the risk of a off-by-minus-one bug for now. But I seemed to be getting one duplicate line between adjecent granules. I don't understand why. Perhaps related to the work I've done on Dataset._add_gran_to_data and friends. * typhon/physics/units/tools.py(UnitsAwareDataArray.to_root_units): - Like in pint. * typhon/utils/__init__.py: (get_time_coordinates): Bugfix. Was only getting time *dimensions*, not time coordinates that are not also dimensions. (concat_each_time_coordinate): Much increased speed for larger arrays, although still much slower than concatenating ordinary ndarrays. Now on CEMS it takes around 22 seconds to concatenate xarray datasets that end up being almost 9 GB. NB: I will use this for the _add_gran_to_data crowd of methods for now instead of the increasingly complex approach I've been trying before. 2017-04-06 Lukas Kluft * typhon/spectroscopy.py: Added `doppler_broadegning()`, `boltzmann_level()` and `stimulated_emission()` to the list of public functions. Removed try-except statement around import of constants. Small improvement of math typesetting in docstrings. * doc/typhon.spectroscopy.rst: Added `doppler_broadegning()`, `boltzmann_level()` and `stimulated_emission()` to the list of public functions. 2017-04-06 Richard Larsson * typhon/constants.py: Added atomic mass unit to list of constants * typhon/spectroscopy.py: Added doppler_broadening, boltzmann_level, and stimulated_emission functions to help compute parameters needed for line shapes and line strengths * typhon/arts/catalogues.py: Changed ARTSCAT5 to have a single append- method. Added some descriptions to its methods. Also added a cross_section method to give a view of the cross section expected from the lines in the ARTSCAT5. Made __repr__ for SpeciesAuxData. Added two ARTS internal classes LineMixing and PressureBroadening which deals with ARTSCAT5-style line mixing and pressure broadening. Both have copies of the computation routines in ARTS. Neither is extensively tested 2017-04-04 Lukas Kluft * typhon/utils/__init__.py (image2mpeg): Wrapper for external command `ffmpeg` to convert a set of images into a video. * doc/typhon.utils.rst: Added `image2mpeg` to documentation. 2017-04-03 Lukas Kluft * typhon/arts/griddedfield.py (__repr__): The old implementation failed to inspect the shape of non-array grids. Fixed this bug to allow the representation of lists (e.g. species in atm_fields_compact). 2017-03-31 Gerrit Holl * typhon/datasets/dataset(SatDataset._add_gran_to_data): - Proceeded with preparations for handling xarray datasets. Work in progress. * typhon/math/stats.py(adev): Added clarifying comments * typhon/physics/units/tools.py(UnitsAwareDataArray): - Added methods for handling reducing operations, starting with sum and diff but should probably be generalised to std, min, max, mean, and others. 2017-03-31 Lukas Kluft * doc/typhon.arts.rst: Included `ARTSCAT5`. 2017-03-31 Lukas Kluft * typhon/arts/griddedfield.py: * (check_atm_fields_compact): Started to implement a method to check, if a GriddedField fits the requirements of an atm_fields_compact. * (__repr__): Improved the robustness of the function. It now works even if the GriddedField name or the dataname is not set. * typhon/arts/scattering.py: Minor PEP8 fixes. 2017-03-31 Richard Larsson * typhon/arts/catalogues.py: Added ARTSCAT5-class. Added some functionality to QuantumIdentifier, QuantumNumberRecord, and QuantumNumbers making them dictionaries with special rules and logic. Also added Rational-class based on fractions.Fraction with special __repr__ rules to mimic ARTS Rational-class reading The logic in the quantum classes are such that == means all quantum numbers are equal and no quantum numbers are missing, <= means all quantum numbers in the LHS are in RHS but that there could be more numbers in RHS that are ignored, and < means that there has to be more numbers in RHS than LHS. In all cases, the numbers that do exist must be consistent for truth. (!=, >= and > behave as expected from the previous rules in a reverse manner.) This is different from pure numerical manipulation and is more in line with set theory. I.e., the logic asks for complete overlap, some overlap, or strictly partial overlap of the sets Likewise, mathematical operations += and -= are interpreted to mean adding a new quantum number or removing and existing quantum number rather than adding or removing a numerical value to the set This additions allows manipulation of LineRecord data via keys in ARTSCAT5.changeForQN() with a few options Example: cat = arts.xml.load('hitran2012.xml').as_ARTSCAT5(), cat.changeForQN(kind='keep', spec='O2', afgl=66, qns={'v1': 0}) cat.changeForQN(kind='add', information={'QN': {'S': 1}}) arts.xml.save(cat, 'o2-groundstate.xml') takes an xml-file throws away all lines that are not 'O2-66' lines with 'v1' quantum number of 0 in both upper and lower state and then adds S=1 to all lines in both the upper and the lower levels list of quantum numbers. Of course, such manipulation only works when quantum numbers are known in the first place. It also fails when the xml-file is not of ARTSCAT-5 type --- this can likely be easily fixed since both ARTSCAT-4 and ARTSCAT-3 translates perfectly to ARTSCAT-5 but I have not bothered with such implementation because I consider these other two formats unnecessary because of the compatibility. Question: Should these classes really be in this folder? ARTSCAT5 is a derived type and Rational is an internal type of ARTS required to understand QuantumNumbers. Neither is really a 'catalogue' or possible to catalogue-ize in xml-files * typhon/arts/griddedfield.py: Changed gridded fields __repr__ function to write the data, shapes, and grids on screen for easier data sanity checks. Uses the numpy printer options so by default the output is sane and if you are using less sane printer options you are probably aware of not evoking __repr__ much 2017-03-31 Lukas Kluft * doc/: Ignore `generated` directory in svn. 2017-03-31 Oliver Lemke * doc/_templates/autosummary/class.rst: Avoid nested generated/generated folder structure. 2017-03-30 Lukas Kluft * doc/pyplots/plot_difference.py: Added example plot for the "difference" colormap. * doc/pyplots/plot_phase.py: Improved the overall appearance of the plot by adding a colorbar and decreasing the number of quivers to draw. * doc/pyplots/plot_qualitative1.py: Set xlimits to improve the look of the example plot. * doc/typhon.plots.cm.rst: Added the example plot for the "difference" colormap. Alphabetized the order of the example plots. >>>>>>> .r10390 2017-03-29 Lukas Kluft * doc/pyplots/_data/test_data.nc: Use the lowest ICON pressure level instead of the highest. This adds much more features resulting in more interesting example plots. * doc/pyplots/plot_velocity.py: Use this example as additional example for the `typhon.plots.center_colorbar()` function. 2017-03-29 Oliver Lemke * typhon/arts/scattering.py (ScatteringMetaData.__neq__): Fix docstring. 2017-03-29 Oliver Lemke * typhon/arts/scattering.py (ScatteringMetaData.{__eq__, __neq__}): Add comparison operators for ScatteringMetaData. 2017-03-28 Gerrit Holl * typhon/datasets/dataset.py (Dataset._ensure_large_enough): - Started work on a pre-allocation version for xarray datasets. Work in progress. * typhon/physics/metrology.py (express_uncertainty): - When returning components, don't return the square but the regular version. * typhon/physics/em.py (SRF.estimate_band_coefficients): - Replaced pretty Δλ by unpretty delta_lambda because some people don't have an easy way to input Greek… - Fix bug causing mixup between α, β, and λ - Fix bug causing mixup between channels * typhon/physics/units/tools.py (UnitsAwareDataArray.__array_wrap__): - Fix bug when calling log/exp on UADA that has units that are dimensionless but not "1" (such as m/km). Should be normalised prior to calling exp or all hell will break loose. 2017-03-28 Gerrit Holl * typhon/datasets/tovs.py: - Replace non-ASCII-identifiers * typhon/physics/metrology.py(express_uncertainty): - Replace non-ASCII-identifiers - Optionally also return sensitivities and individual components, as a mapping. 2017-03-28 Oliver Lemke * typhon/arts/scattering.py (SingleScatteringData.__neq__): Implement not equal comparison operator. 2017-03-28 Oliver Lemke * typhon/arts/scattering.py (SingleScatteringData.__eq__): Replace fixed atol value in allclose call. 2017-03-28 Oliver Lemke * typhon/arts/scattering.py (SingleScatteringData.__eq__): Implement comparison operator. 2017-03-27 Gerrit Holl * typhon/datasets/dataset.py: (Dataset.read_period): - Move some functionality to _apply_limits_and_filters and _add_gran_to_data and _correct_overallocation. - In those methods, add support for reading datasets that return xarray.Dataset. Implementation is currently stupid and needs to be MUCH faster. (MultiFileDataset.get_mandatory_fields): - Bugfix, fields in subdir mandatory too (HomemadeDataset): - This is now a subclass of NetCDFDataset * typhon/physics/units/em.py (SRF.estimate_band_coefficients): - Fix units for α, β, Δα, and Δβ * typhon/physics/units/tools.py UnitsAwareDataArray.__rpow__: - Add missing return statement * typhon/utils/__init__.py (get_time_coordinates): - Return all coordinates on a dataset with a datetime64 dtype 2017-03-27 Lukas Kluft * typhon/plots/common.py (center_colorbar): Added convenience function to center diverging colorbars around zero. * doc/typhon.plots.rst: Added `center_colorbar`. 2017-03-24 Lukas Kluft * typhon/plots/cm/__init__.py: Give credit to the cmocean package by Kristen Thyng. * doc/conf.py: Set font size and bounding box inches for all plots created in the documentation. * doc/pyplots/plot_phase_sinus.py, doc/typhon.plots.cm.rst: Removed the sine example for the phase colormap. * doc/pyplots/plot_density.py, doc/pyplots/plot_phase.py, doc/pyplots/plot_speed.py, doc/pyplots/plot_temperature.py, doc/pyplots/plot_velocity.py: Improved the appearance of all basemap plots in the documentation. In addition the temperature plot is fully colored as an example and the wind direction plot uses a custom ticklabel formatter. 2017-03-22 Gerrit Holl * typhon/utils/__init__.py(concat_each_time_coordinate): - New function. Taking a collection of xarray.Dataset objects, concatenate them along any dimension with a coordinate with a time dtype. 2017-03-20 Oliver Lemke * typhon/cm.py: Removed. 2017-03-17 Gerrit Holl * typhon/atmosphere.py (vmr, relative_humidity): Improved cross-references (use full import path but only show function names in html doc.) 2017-03-16 Lukas Kluft * typhon/physics/thermodynamics.py (density): Improved docstring with example and cross-reference. * typhon/legacy: Removed (empty) legacy directory. 2017-03-16 Lukas Kluft * typhon/spectroscopy.py (linewidth): Improved docstring and added example. * typhon/tests/test_spectroscopy.py: Added test method for the calculations of linewidth (FWHM). 2017-03-16 Lukas Kluft * typhon/atmosphere.py: Fixed input types in all docstrings. (vmr, relative_humidity) Fixed copy & paste remains in docstrings. Added examples and cross-references to typhon functions. * typhon/tests/test_atmosphere.py: Added test methods for VMR and relative humidity calculations. 2017-03-15 Gerrit Holl : * typhon/datasets/tovs.py(as_xarray_dataset): - Exempt bitfield from forced float conversation, bitfields never need flagging (actually they usually tell why we flagged at all). 2017-03-14 Gerrit Holl * datasets/dataset.py(DatasetDeque.move): - Workaround for xarray bug causing encoding to be lost upon concatenation https://github.com/pydata/xarray/issues/1297 2017-03-13 Lukas Kluft * typhon/utils/__init__.py (print_timing): The decorator preserves the original function signature and docstrings. * typhon/atmosphere.py (vmr): Calculate VMR for given relative humidity, pressure and temperature. * doc/typhon.atmosphere.rst: Added `vmr` to documentation. 2017-03-13 Gerrit Holl * typhon/datasets/tovs.py(HIRS.as_xarray_dataset): Convert ints to floats so that I can use nans for masking, as xarray does not support masking otherwise. * typhon/physics/units/em.py(SRF.estimate_band_coefficients): - Use band coefficients from file for now, ad-hoc solution. * typhon/physics/units/tools.py(UnitsAwareDataArray): - Do not attempt to transfer units for ufuncs that return a boolean, like isfinite. 2017-03-10 Lukas Kluft * typhon/utils/__init__.py: (Timer): Fixed docstring example. (print_timing): Added decorator for convenient function benchmarking. * doc/typhon.utils.rst: Added `print_timing` to docs. 2017-03-09 Lukas Kluft * typhon/atmosphere.py (relative_humidty): Calculate relative humidity for given VMR, pressure and temperature. * doc/typhon.atmosphere.rst: Added `relative_humidity` to docs. 2017-03-08 Gerrit Holl * typhon/datasets/_tovs_defs.py: - Change complevel to 4 as tests show that it gets much slower, but not much faster, at higher complevels - Fix typo in two field names * typhon/physics/metrology.py: Correct docstring * typhon/physics/units/em.py(SRF.as_dataarray): Added method to convert SRF to a data array (NB: using regular DataArray, not UnitAwareDataArray, because I have no way of keeping track of units on coordinates in UnitAwareDataArray at the moment). 2017-03-06 Lukas Kluft * typhon/arts/xml/__init__.py: Simplified code around if-conditions. 2017-03-06 Gerrit Holl * typhon/physics/units/tools.py(UncertaintyAwareDataArray.to): Bugfix, adapt signature for contexts to the one used by pint, such that it works when the number of contexts given is not exactly one. 2017-03-06 Lukas Kluft * typhon/arts/xml/__init__.py: Added `make_binary` and `make_directory_binary` to `__all__`. * (save): Added the new keyword `parents`. If `parents` is `True` missing parent directories are created. * (load_directory): Include zipped XML files to pattern. * (make_binary, make_directory_binary): Use the newly implemented `parents` keyword of `save` to create missing parent directories when needed. Both functions return the path(s) to the created file(s) to determine where the binary files are located. * doc/typhon.arts.rst: Added `make_binary` and `make_directory_binary`. * typhon/constants.py, typhon/physics/units/constants.py: Fixed typo in docstrings. * KNOWN_ISSUES: Removed solved issues. 2017-03-03 Gerrit Holl * typhon/physics/metrology.py(express_uncertainty): - Tell user in machine form what args have failed to be differentiated. * typhon/physics/units/common.py: - Added some clarifying (hopefully) comments * typhon/physics/units/tools.py: (UnitsAwareDataArray): - Support ufuncs that return floats rather than quantities. Store as string so that it can be valid NetCDF. - Add support for __radd__, __rsub__, __rtruediv__, etc. 2017-03-03 Richard Larsson * typhon/arts/catalogues.py: Added helpers for SpeciesAuxData. These make use of property and setter keywords. Makes version 1 SpecisAuxData particularly much more user friendly but version 2 SpecisAuxData is still a bit of a hassle. (Isotopologue ratios are kept in version 1 data so it is now much easier to rescale your jacobian to give proper mixing ratios for different Isotopologues. Just load the isotop_ratio data and then access the isotopologue using dictionary operator[]. If you want to update the dictionary position, the @data.setter keywords automatically aligns this with how the reading/writing routines work.) * typhon/arts/xml/__init__.py: Added helpers for making many files binary (e.g., for common folders in arts-xml-data) 2017-03-02 Lukas Kluft * typhon/constants.py: Use sans-serif font for physical units in documentation. 2017-03-02 Oliver Lemke * doc/_templates/layout.html, doc/_static/theme.css: Add css file to overwrite theme settings. Instead of red, use default font color for literals in text. 2017-03-01 Lukas Kluft * typhon/physics/units/constants.py: Removed documentation entry for Kelvin-Celsius-conversion as it is not used when converting values with `pint`. 2017-03-01 Lukas Kluft * typhon/constants.py, typhon/physics/units/constants.py: Added documentation for all defined constants. Removed deprecated constants R_d, R_w, M_d and M_w. 2017-02-28 Oliver Lemke * Completely restructured the documentation layout. Having all functions/classes of a package documented on a single page made it very difficult to get a decent overview. Now, a list of functions and classes with short descriptions is generated for each package. See http://www.radiativetransfer.org/misc/typhon/doc-trunk Unfortunately, due to current limitations in Sphinx, it is not possible to generate these lists completely automatically. Therefore, when you add a function or class, you need to add its name manually to the corresponding rst file in the doc/ folder. Note that only top-level packages have their own rst file. Sub-packages are listed in the rst file of their parent package. (Only exception currently is plot.cm since plot and plot.cm contain many examples) * doc/typhon.arts.xml.rst: Merged into typhon.arts. * doc/conf.py: Link to Python 3.5 docs, not the dev version. Add autosummary extension. * doc/typhon.*.rst: Restructured by using the autosummary extensions. Added a list of all public functions and classes for each package. * typhon/geodesy/__init__.py: Cleanup short function descriptions. * typhon/utils/__init__.py, typhon/files/__init__.py: Move module description from rst file to py file. * doc/Makefile: Remove generated dir on clean. Add devupload target. * doc/developer.rst: Add note on adding functions/classes to docs. * doc/modules.rst: Reduces toc depth to 2. Remove arts.xml. Renamed API documentation to Reference. * doc/_templates/autosummary/base.rst, doc/_templates/autosummary/class.rst: Adapted autosummary templates for our needs. 2017-02-28 Oliver Lemke * typhon/version.py: Set DEVBUILD back to True after release. 2017-02-28 Oliver Lemke * typhon/version.py: 0.3.6 Release. 2017-02-28 Oliver Lemke * typhon/physics/units/em.py (SRF): Small fixes in examples. 2017-02-27 Gerrit Holl * typhon/math/stats.py(adev): - Support xarrays with named dimensions * typhon/physics/units/em.py(SRF): - Clarify how to use pint directly. * typhon/datasets/tovs.py: - Small bugfixes * typhon/physics/units/tools.py: Added - Contains a unit-aware subclass of xarray.DataArray. Still incomplete. 2017-02-27 Gerrit Holl * typhon/physics/units/{em,common}.py: - Add context to convert radiances to brightness temperatures (passing the SRF) within pints unit framework directly, and vice-versa. 2017-02-27 Gerrit Holl * typhon/physics/units/em.py(SRF): - Added examples to documentation - Made passing units and ndarrays optional, can now pass unitless or regular python numbers. 2017-02-27 Gerrit Holl * typhon/physics/units/common.py: - Add kayser/wavenumber to spectroscopy context for use in pint<0.8 2017-02-21 Gerrit Holl * typhon/math/common.py(promote_maximally): - Clarify documentation and tolerate passing in plain Python numbers (for which it will do nothing). 2017-02-21 Lukas Kluft * typhon/utils/__init__.py: Added `path_append`, `path_prepend` and `path_remove` to conveniently modify colon-separated path variables (e.g. PATH or ARTS_DATA_PATH). 2017-02-20 Oliver Lemke * doc/*.rst: Use full module names for rst files. 2017-02-19 Lukas Kluft * typhon/arts/common.py (run_arts): Raise proper `FileNotFoundError` instead of an unspecific `Exception` if controfile is not found. 2017-02-18 Lukas Kluft * typhon/arts/griddedfield.py: (__eq__): Consider `dataname` when comparing GriddedField objects. (to_dict): If defined, use `dataname` as key for the data array. 2017-02-17 Gerrit Holl * typhon/physics/metrology.py: (express_uncertainty): Add permissive mode where a single failed derivative does not cause the entire expression to fail (awaiting a fix for the failures). (recursive_args): Bugfix, was dropping indexed values completely rather than merely not descending into their index and indexbase. 2017-02-16 Gerrit Holl * typhon/physics/units/em.py(SRF): - Added method for estimating band coefficients for approximative conversions. Not implemented yet, just put the documentation there. * typhon/physics/metrology.py(recursive_args): - Don't (by default) consider the integrand as an argument, at least not until I know how to propagate those through; will not happen for β FCDR. 2017-02-16 Lukas Kluft * typhon/arts/xml/__init__.py (load_indexed): Fixed documentation format. 2017-02-16 Lukas Kluft * typhon/arts/xml/__init__.py (load_indexed): Fixed handling of zero-padding in filenames. 2017-02-15 Lukas Kluft * typhon/arts/griddedfield.py: Fixed class method `to_atmlab_dict` to use the new `dataname` attribute. 2017-02-15 Lukas Kluft * typhon/arts/xml/__init__.py: (load): If the given file is not found, try to add the '.gz' extension. This is consistent with ARTS. (load_indexed): Added a convenience function to load indexed XML files. All files matching a given filename pattern are loaded and the results are retunred in a list. * typhon/arts/griddedfield.py: Added attribute `dataname` to all GriddedField classes. It is now possible to set a proper name for the stored data array. If `dataname` is not set, no name is written to XML files. This replaces the old behavior of adding 'Data' as default. 2017-02-10 Oliver Lemke * typhon/arts/scattering.py (SingleScatteringData): Add support for version 3. Version 2 data is automatically upgraded to version 3 for non-azimuthally random particles. 2017-02-08 Lukas Kluft * typhon/plots/colors.py: All functions that export colormaps to files are now using the number of colors actually defined in the colormap as default. Changed the keyword argument in `mpl_colors()` from `n` to `N` for consistency.` 2017-02-03 Lukas Kluft * typhon/physics/em.py: Added `radiance2planckTb()` and `radianc2rayleighjeansTb()` to convert radiances to brightness temperatures. * typhon/physics/tests/test_physics.py: Implemented tests for new functions. 2017-02-02 Gerrit Holl * typhon/datasets/dataset.py(DatasetDeque.reset): - Reset either to start of time or to new time. 2017-01-30 Gerrit Holl * setup.py: - Add support for Python 3.6 in addition to Python 3.5 - Add dependency on xarray (≥ 0.8, apparently the version in conda) * typhon/datasets/_tovs_defs.py: - Uncomment scale_factor 1, was causing ints to become floats upon unpacking - Rename dimension “scanline” to “time” for more consistent processing * typhon/datasets/tovs.py: - Rename here too * typhon/datasets/dataset.py(DatasetDeque): - New class to aid moving through a large dataset in a deque-like way, i.e. when you read additional data at the tail, correspondingly time period of data gets removed at the head. 2017-01-27 Gerrit Holl * typhon/datasets/_tovs_defs.py: - Move definition of how to encode HIRS in xarray Dataset to the definitions module. * typhon/datasets/tovs.py(HIRS.as_xarray_dataset): - Make more flexible, can skip dimensions so we can use it with collocations, for example. Set encoding values for efficient storage in NetCDF4. Improved documentation. * typhon/physics/units/common.py: - Fixed bug that caused radiance_units["ir"] to be a Quantity with magnitude 1, rather than a Unit. 2017-01-26 Gerrit Holl * typhon/physics/metrology.py(express_uncertainty): - bugfix, don't stop at Function because an expression is also a Function so it will stop immediately, oops. Also make sure we return immediately if passed a symbol or indexed. * typhon/datasets/tovs.py(HIRS.as_xarray_dataset): - New method that converts to an xarray dataset. Still work in progress but appears to work sometimes. Makes it very easy to write to NetCDF4. 2017-01-23 Gerrit Holl * typhon/datasets/dataset.py: Small bugfixes 2017-01-23 Gerrit Holl * typhon/datasets/tovs.py(HIRS): - Started implementing improved overlap choice. Work in progress. 2017-01-23 Gerrit Holl * typhon/math/stats.py(corrcoef): - Calculate corrcoef with p-values. Taken from StackOverflow, attribution in source code. 2017-01-23 Gerrit Holl * typhon/physics/metrology.py: - We don't want uncertainties expressed in the free symbols if some symbols are arrays; rather, each element of the array needs to have its own uncertainty expression. This is particularly important if different elements of an array have different units, such as may be the case when the coefficients of a polynomial are represented as an array. Added a helper function to use for this. 2017-01-20 Gerrit Holl * typhon/physics/metrology.py: Started module with metrological functions. Has soft dependency on sympy. 2017-01-16 Lukas Kluft * typhon/arts/griddedfield.py: Fixed __eq__() to work with empty GriddedField objects (cases where gf.data and gf.grids are None). * typhon/arts/tests/test_griddedfield.py: Added an equality test for empty GriddedFields. 2017-01-16 Lukas Kluft * typhon/plots/colors.py: Added new function colors2cmap() to convert a given list of colors (named color, rgb or hex) into a LinearSegmentedColormap. 7-01-10 Gerrit Holl 201 * typhon/datasets/tovs.py(HIRS): (._read): - Throw out anyone who doesn't want to stand in line nicely 7-01-10 Gerrit Holl * typhon/datasets/dataset.py: (Dataset.read): - Don't fail on verifying time sorting if our array is too short to do so * typhon/datasets/tovs.py(HIRS): (._read): - Throw out scanlines where the time is bad. Masking is not enough; time series processing tools such as xarray assume sequential time so enforcing this makes life muc heasier later on (.filter_firstline): - Change message from debug to warning if GFL DB cannot be read. (.apply_flags): - Flag times when qidonotuse is set, but do so if and only if the time at that point is inconsistent with either the preceding or the following scanline. This gets rid of some (perhaps most?) instances where there are outliers in the time axis. 2017-01-09 Gerrit Holl : * typhon/datasets/dataset.py(Dataset.read): - Bugfix: do not crash if first granule empty or rejected. * typhon/datasets/tovs.py(HIRS.filter_firstline): - Don't make a copy, just read into memory already. Certainly don't make a copy every time, this is a dramatic slowdown. 2017-01-09 Gerrit Holl : * typhon/datasets/dataset.py(Dataset.read): - when sorted data are requested, verify that granule N starts after granule N-1 finishes. If this is not the case, raise an error. * typhon/datasets/tovs.py(HIRS.filter_firstline): - When firstline db is locked, make a temporary copy and try again to read. 2017-01-06 Gerrit Holl * typhon/datasets/tovs.py(HIRS): (.filter_firstlines) (.update_firstline_db): - Fix bug where I used the index in the file to create the firstline db, but the hrs_scnlin field to apply it. This lead to errors in cases where there are gaps in hrs_scnlin in the early part of the file, and thus to folds in the time field and remaining duplicate lines. 2016-12-19 Gerrit Holl * typhon/datasets/_tovs_defs.py: - Fix creation of array with [masked], shutting up UserWarning * typhon/datasets/model.py(ERAInterim): - bugfix, needs section attribute as well nowadays * typhon/datasets/tovs.py(HIRS): - update to modern progressbar usage, shutting up warning - use self.n_perline instead of hardcoded 56 * typhon/math/array.py(mad_outliers): - don't fail when all are masked already 2016-12-14 Gerrit Holl * typhon/datasets/tovs.py: (HIRS): Add new attribute temperature_fields that lists all temperatures that can be requested, and populate with temperatures available in all HIRS. (HIRSKLM): Add temperature fields only available in KLM (HIRS4): Add temperature field only available in HIRS4 2016-12-14 Gerrit Holl * typhon/plots/plots.py(scatter_density_plot_matrix): - Permit to pass a regular 2-D array as well (but see warning in documentation). 2016-12-14 Gerrit Holl * typhon/plots/plots.py(scatter_density_plot_matrix): - Removed erroneous reference to hist2d, replaced by hexbin * typhon/datasets/tovs.py: (HIRS.__init__): - Inform that hrs_scnlin is always needed (HIRS.read_period): - Suppress FutureWarning triggered by masked array module when selecting multiple fields from a structured masked array * typhon/datasets/dataset.py: (Dataset): - Add attribute `mandatory_fields`. When populated, Dataset.read will ensure that those fields are always passed on to the low-level, instrument-specific reading routine. (Dataset.read_period): - On 29 November I added that ValueError should be caught here. Undo this; it catches too many false positives. Instead, ValueError should be caught at a lower level and then chained into a descendent of DataFileError. 2016-12-14 Lukas Kluft * typhon/oem/__init__.py: Divided package content into submodules. Import modules common and error. * typhon/oem/common.py: General functions connected to OEM. Currently containing functions to calculate averaging kernels or error covariance matrices. * typhon/oem/error.py: Functions to estimate the retrieval error. Currenlty containing functions to estimate smoothing error and retrieval noise. 2016-12-13 Gerrit Holl * typhon/plots/plots.py(scatter_density_plot_matrix): - Allow alternate way of passing data to be plotted, i.e. as keyword arguments. This should be nicer in Python 3.6+ as keyword argument order will be preserved. - Add some examples to documentation, either with structured array or with keyword arguments. 2016-12-12 Gerrit Holl * typhon/plots/plots.py(scatter_density_plot_matrix): - Allow to pass units for x- and y-axes - Bugfix in range handling - Raise a warning if range is empty for a subplot 2016-12-12 Gerrit Holl * typhon/plots/plots.py(scatter_density_plot_matrix): Added - Like a scatter plot matrix but with a hexbin+plot_distribution_as_percentiles in every off-diagonal. 2016-12-09 Gerrit Holl * typhon/datasets/dataset.py(Dataset.read, Dataset._add_pseudo_fields): - Delegate addition of pseudo-fields to different method so that subclasses can implement specialised versions. * typhon/datasets/tovs.py(HIRS._add_pseudo_fields): - Implement specialisation considering that HIRS._read might return a tuple (head, lines), which messes up the pre-checks before passing the result from HIRS._read on to functions calculating pseudo fields. 2016-12-08 Oliver Lemke * typhon/version.py: Set DEVBUILD back to True after release. * CHANGES: Put back header for new changes. 2016-12-08 Oliver Lemke * typhon/version.py, CHANGES: 0.3.5 Release. 2016-12-08 Oliver Lemke * Changes: Renamed to CHANGES. 2016-12-07 Richard Larsson * typhon/geodesy: Added (geometric_limb_zenith_angle) and (line_ellipsoid_intersect) as helper functions to get ellipsoid limb zenith angles when other satellite parameters are known. The first is used to get the geometric limb viewing zenith angle by using the intersection between a line and the ellipsoid of the second function. 2016-12-07 Lukas Kluft * typhon/spectroscopy.py: Module for spectroscopy related functions. Currently containing a function to calculte the width (full-width at half maximum) of an absorption line. * typhon/__init__.py: Import spectroscopy. * doc/modules.rstm doc/spectroscopy.rst: Added spectroscopy to documentation. 2016-12-07 Richard Larsson * typhon/geodesy: Added (geocentricposlos2cart). 2016-11-30 Lukas Kluft * Changes: Added information on GriddedField.copy() and the new constructor behaviour. * typhon/arts/griddedfield.py: Implemented a copy() method to return a deepcopy of a GriddedField object. Attributes passed to the constructor are now copied to prevent references inside the new GriddedField object. Higher level constructors (e.g. GriddedField3) now take all positional and keyword arguments. * typhon/arts/tests/test_griddedfield.py: Added tests to check the deepcopying of GriddedFields. 2016-11-29 Gerrit Holl * typhon/datasets/tovs.py: (HIRS): - Fix regulary expression for HIRS. Sometimes the second part is HIRX and sometimes it is HIRS. I don't know why, but let's make sure we catch both. - Add satname as attribute, so that users can bypass passing it every time. (HIRS.update_firstline_db): - Make passing the satname optional, if we already pass it on object creation. (get_mask_from_flags): - Bugfix in setting flags per channel where counts/bt/radiance do not have the same dimension * typhon/datasets/dataset.py: (Dataset.read_period): - Also catch cases where reader triggers ValueError. (Dataset.read): - Change format of my_pseudo_fields. Now, each value of this dictionary shall be a tuple of three, rather than two, elements, namely `(List[str], function, Mapping[str, Any])`. The first element indicates the dependencies; the second the function to be called to calculate the pseudo_field, and the third (new) any conditions on keyword arguments passed to the reading routine based upon which this pseudo_field shall be called at all. For example, for HIRS, we only want to calculate my_pseudo_fields if calibrate=True because the pseudo fields rely on the results of the calibration. 2016-11-29 Lukas Kluft * typhon/tests/test_geographical.py: Removed check for floating point equality. Use np.allclose() to allow some tolerance. 2016-11-22 Lukas Kluft * typhon/arts/tests/test_griddedfield.py: Added test cases for new shape and subscription features. 2016-11-21 Lukas Kluft * typhon/arts/griddedfield.py: The GriddedField class now offers a ``shape`` property to directly return the shape of the underlying data array. GriddedFields are now subsriptable and return the values of the stored data array. * Changes: Added information on GriddedField changes as they provide a significant improvement in usability. 2016-11-18 Gerrit Holl * typhon/datasets/tovs.py: (HIRS4.get_mask_from_flags): - treat channel-specific flags for calibration failures. Catches some but not all so doesn't solve the problem as far as FIDUCEO is concerened. 2016-11-18 Lukas Kluft * Changes: Added a file to keep track of major changes between releases. 2016-11-17 Gerrit Holl * typhon/math/common.py(calculate_precisely): - Add reference to old numpy bug that makes this necessary * typhon/datasets/dataset.py(Dataset.read): - Change syntax for my_pseudo_fields such that it can have dependencies on other fields and pseudo_fields, which are then read as well. 2016-11-15 Gerrit Holl * typhon/math/common.py: (promote_maximally): Promote ndarrays to their maximal precision, i.e. ints to i8, floats to f8, etc. Works for int, float, uint. Designed to be used with calculate_precisely. (calculate_precisely): Wrapper to promote all ndarray arguments of a function to their maximal precision. Useful when you are losing precision in your mathematical calculations and there is no straightforward way of preventing this by rewriting the algorithm. 2016-11-15 Gerrit Holl * typhon/datasets/dataset.py(Dataset.read): Support either single- or double-argument pseudofield function * typhon/datasets/tovs.py: (TOVSCollocatedDataset): New mixin class for any collocated dataset involving scanlines. (TOVSCollocatedDataset.combine): Make sure we use column information to select right column from exact matchup. (HIRSHIRS.combine): Pass right instructions to parent class. 2016-11-15 Lukas Kluft * typhon/arts/xml/tests/test_matpack_types.py: Test the behaviour when reading and writing zipped XML files. 2016-11-15 Lukas Kluft * typhon/arts/xml/__init__.py: Fixed check for '.gz' file ending. Exception is thrown if one attends to save a zipped file in binary format. Use 'wt' mode when opening files to fix the writing of gzipped files. 2016-11-10 Gerrit Holl * typhon/datasets/tovs.py: (HIRS): Make `satellites` attribute into a dictionary, to list all accepted forms for a particular satellite (NOAA08, noaa08, noaa8, n08, etc.). (which_hirs_fcdr): Relocate this function to FCDR_HIRS package. It never even worked here! See https://github.com/FIDUCEO/FCDR_HIRS/blob/master/FCDR_HIRS/fcdr.py * typhon/datasets/dataset.py(Dataset.read_period): Fix bug handling pseudo_fields for empty granules 2016-11-10 Gerrit Holl * typhon/math/array.py(mad_outliers): - Implement outlier detection based on number of MADS from median, with a percentile-based mechanism if MAD=0 * typhon/datasets/dataset.py: (Dataset): Add attributes 'section' and 'my_pseudo_fields'. Section replaces name for looking up in .pyatmlabrc. my_pseudo_fields is used to define object-wide on-the-fly-calculated fields. (Dataset.read): Add ability to have my_pseudo_fields attribute on dataset object. This works like pseudo_fields the fields are passed as normal fields, but in reality calculated on-the-fly. (Dataset.verify_mandatory_fields): No need any more to pass on fields if those are already set as attributes. For example, one can create a noaa12-specific HIRS2-object and will not need to pass satname to individual methods. * typhon/datasets/tovs.py: (HIRS) (IASIEPS) (IASISub) (HIRSHIRS) (MHS_L1C): Seperate attribute `section` from `name`. This allows to create different HIRS objects corresponding to different satellites. (HIRS._convert_temp): Flag outlier temperatures using typhon.math.array.mad_outliers. (HIRS.extract_calibcount_and_temp) (HIRS.calculate_offset_and_slope): Move methods to a subclass at https://github.com/FIDUCEO/FCDR_HIRS/blob/master/FCDR_HIRS/fcdr.py as this is only relevant for the FIDUCEO FCDR creation. (HIRSHIRS): - Fix start_date and end_date (HIRSHIRS._read): - Add a time-field that has only one value per collocation 2016-11-09 Lukas Kluft * doc/conf.py: Include sphinx.ext.intersphinx to reference Python, SciPy and matplotlib documentation. Set a default plot preamble. Currently only seeding numpy's random number generator to make plots in documentation not so random ;) * doc/pyplots/plot_qualitative2.py: Remove np.random.seed(). * typhon/plots/cm/_cm.py: Adjust the bright yellow in qualitative1 to the one used in qualitative2. * typhon/plots/plots.py: Fixed heatmap() documentation. Also included a small example. 2016-11-07 Lukas Kluft * typhon/plots/colors.py (cmap_from_txt): Added keyword to specify the number of colors in the created colormap. Fixed documentation. * doc/plots.rst: Removed typhon.plots.colors from autodoc to prevent duplicates. 2016-11-04 Lukas Kluft * typhon/plots/colors.py: Fixed docstring. 2016-11-04 Lukas Kluft * typhon/plots/colors.py: Set default value for Adobe Color Table export to 256 colors. * typhon/plots/tests/reference/viridis.act: Updated reference file to 256 colors. * typhon/plots/tests/test_colors.py: Added tests for Adobe Color Table and ASCII import of colormaps. 2016-11-04 Lukas Kluft * typhon/plots/colors.py: Added a function to import colormaps from txt files. cmap_from_txt() and cmap_from_act() also register the reversed colormap. 2016-11-03 Lukas Kluft * typhon/plots/cm/_cm.py: Adjust the very bright yellow in qualitative2 to be more saturated. * doc/pyplots/plot_qualitative1.py: Do not show interpolated colors. 2016-11-03 Lukas Kluft * typhon/plots/colors.py: It is now possible to pass a number of colors for all colormap export functions. Use discrete levels in CPT files. Include number of colors in Adobe Color Tables. * typhon/plots/tests/reference/viridis.act, typhon/plots/tests/reference/viridis.cpt: Updated reference files. 2016-11-02 Lukas Kluft * typhon/plots/colors.py: Added functions to export colormaps as GIMP gradient and CSS3 gradient. 2016-11-02 Lukas Kluft * typhon/plots/colors.py: Do not include timestamps in cpt and txt files. Use blanks instead of "/" in cpt files. * typhon/plots/tests/reference/viridis.cpt, * typhon/plots/tests/reference/viridis.txt: Updated reference files to new formats. * typhon/plots/tests/test_colors.py: Use a simple file comparison for export tests. 2016-11-02 Lukas Kluft * typhon/plots/colors.py: Added a function to export colormaps as Adobe Color Table. * typhon/plots/tests/test_colors.py: Test export to Adobe Color Table. * typhon/plots/tests/reference/viridis.act: Reference file. 2016-11-02 Lukas Kluft * typhon/plots/colors.py: Pass the number of colors when creating the LinearSegmentedColormap. 2016-11-02 Oliver Lemke * typhon/plots/colors.py (cmap_from_act): Respect the number of colors defined in the file. 2016-11-02 Lukas Kluft * typhon/plots/colors.py: Added function to import Adobe Color Tables. 2016-11-01 Lukas Kluft * typhon/plots/plots.py (heatmap): Made possible types for `bins` consistent with plt.hist2d(). 2016-11-01 Lukas Kluft * typhon/latex.py: Added a keyword to pass a label to the LaTeX table. * typhon/tests/reference/matrix.tex: Updated reference file. 2016-11-01 Lukas Kluft * typhon/plots/plots.py: Added a function to create a simple heatmap. 2016-10-31 Gerrit Holl * typhon/physics/units/em.py: (SRF.blackbody_radiance) (SRF.integrate_radiances): - Make internal handling more consistent with correct units. Now supports returning either radiance or spectral radiance. * typhon/datasets/tovs.py: (HIRS._read): - Add some checks on latitude and longitude ranges. Those should not be too large but also not too small. - Flag cases where calibration data are all zero. - Actually use max_flagged flag. (HIRSPOD.get_mask_from_flags): - Check flags more consistently. Put each in its own variable for debugging sake. Enforce max_flagged rule. * typhon.datasets.model.py(ERAInterim._read): - Explicitly pass `prim='t'`. * typhon/datasets/dataset.py: (Dataset.read_period): - Allow to pass time period rather than ending date (NetCDFDataset._read): - Allow to explicitly tell what the primary field is. 2016-10-31 Lukas Kluft * typhon/__init__.py: Import math. * typhon/math/__init__.py: Function definitions moved to common. * typhon/math/common.py: Collect common functions for typhon.math. Added function nlogspace() to create equally logarithmically spaced arrays. 2016-10-31 Lukas Kluft * typhon/cm.py: Also import typhon.plots.colors to mimic the old structure completely. 2016-10-31 Lukas Kluft * typhon/plots/cm: Moved from typhon/cm. * typhon/plots/colors.py: New module for all color related functions. typhon.cm is only used for defining colormaps. * typhon/plots/common.py: New module for commond functions related to plotting. * typhon/plots/plots.py: New module to collect functions that actually create plots. * typhon/plots/tests/reference, typhon/plots/tests/test_colors.py: Moved tests from typhon/cm/tests. * typhon/cm.py: Alias module to load typhon.plots.cm. A deprecation warning is raised. * doc/cm.rst, doc/modules.rst, doc/plots.rst, doc/pyplots/cm_gallery.py, doc/pyplots/plot_density.py, doc/pyplots/plot_phase.py, doc/pyplots/plot_phase_sinus.py, doc/pyplots/plot_qualitative1.py, doc/pyplots/plot_qualitative2.py, doc/pyplots/plot_speed.py, doc/pyplots/plot_temperature.py, doc/pyplots/plot_velocity.py, doc/pyplots/plot_vorticity.py: Adapated new structure in the documentation. Fixed imports in all plotting scripts. 2016-10-28 Lukas Kluft * typhon/arts/__init__.py: Moved all function definitions to common. * typhon/arts/common.py: Definitions for common module functions. 2016-10-28 Lukas Kluft * typhon/arts/griddedfield.py: Removed debug print(). 2016-10-28 Lukas Kluft * typhon/arts/__init__.py: Removed refine_grid(). * typhon/arts/griddedfield.py: Added refine_grid() as instance method for GriddedField. Extrapolation is no longer enabled by default. 2016-10-27 Lukas Kluft * typhon/arts/__init__.py: Added refine_grid(). Function to refine a grid in a GriddedField. The data is interpolated to match the new coordinates. 2016-10-21 Oliver Lemke * typhon/version.py: Set DEVBUILD back to True after release. 2016-10-21 Oliver Lemke * typhon/version.py: 0.3.4 Release. 2016-10-21 Oliver Lemke * typhon/__init__.py: Avoid abort of test procedure when no DISPLAY is defined. * typhon/arts/tests/test_arts.py: Add TODO on 'Skipped' indicator not being displayed properly when running tests from inside ipython. 2016-10-21 Oliver Lemke * MANIFEST.in: Ensure that all tests and reference files are installed. 2016-10-21 Oliver Lemke * typhon/version.py: Set DEVBUILD back to True after release. 2016-10-21 Oliver Lemke * typhon/version.py: 0.3.3 Release. 2016-10-18 Lukas Kluft * typhon/physics/em.py: Fixed documentation. 2016-10-18 Lukas Kluft * typhon/physics/em.py: Added rayleighjeans_wavelength() and planck_wavenumber(). * typhon/physics/tests/test_physics.py: Added tests for newly implemented functions. 2016-10-18 Lukas Kluft * typhon/physics/__init__.py: disable syntax checking for imports using the noqa (no quality assurance) directive. * typhon/physics/em.py: Fixed bugs (found while writing tests). * typhon/physics/tests, typhon/physics/tests/test_physics.py: Tests for typhon.physics. 2016-10-18 Lukas Kluft * typhon/cm/tests, typhon/cm/tests/test_cm.py: Tests for typhon.cm. * typhon/cm/tests/reference, typhon/cm/tests/reference/viridis.cpt, typhon/cm/tests/reference/viridis.txt: Reference data for colormap tests. * typhon/arts/xml/tests/test_matpack_types.py: Removed print form setUp(). * typhon/tests/test_latex.py: Removed print from setUp(). Do not try to remove *.bin files in tearDown(). 2016-10-18 Lukas Kluft * typhon/arts/tests/test_arts.py: Included optional test case for ARTS system call (only run if ARTS in search path). * typhon/plots/__init__.py: Import typhon.cm. Added get_subplot_arrangement() to __all__. * typhon/plots/tests, typhon/plots/tests/test_plots.py: Test all functions in typhon.plots that do not create plots. 2016-10-18 Lukas Kluft * typhon/tests/test_geographical.py: Tests for typhon.geographical. * typhon/tests/test_latex.py: Tests for typhon.latex. * typhon/tests/reference, typhon/tests/reference/matrix.tex: Reference data for unit tests. 2016-10-17 Gerrit Holl * typhon/physics/units/em.py(SRF.integrate_radiances): - Introduce workaround for numexpr bug when operating reducing operation on ndarray along zero dimension (see https://github.com/pydata/numexpr/issues/229) * typhon/datasets/tovs.py: (HIRS): - Make more use of radiance_units dict (HIRS.apply_calibcount_filter): - Raise graceful exception when there aren't any calibration scanlines (HIRS._get_temp_factor): - Support TIROSN by peeking into start data time (same code as NOAA11). (HIRS.count_lines_since_last_calib): - Title says it all. (MHSL1C._get_dtype_from_vars): - Workaround for phony duplicate dims * typhon/datasets/_tovs_defs.py: - NOAA-9 °C → K * typhon/datasets/model.py: Added - New module containing classes for model-based data. Started with ERAInterim class. API highly provisional, not documented yet. * typhon/datasets/dataset.py: (Dataset.__new__): Bugfix when instantiating a class and its subclass (Dataset.read_period): Fix docs (Dataset.read): - Add support for “pseudo fields” which shall be calculated after every granule, potentially helpful when reading a lot of data and running into memory problems (NetCDFDataset._get_dtype_from_vars): - Move this to own so that it can be subclassed (NetCDFDataset._read): - Allow pseudo-fields here too but at a lower level, because they may need access to the ds object 2016-10-14 Lukas Kluft * typhon/tests: Directory to store tests for top-level modules. * typhon/tests/test_atmosphere.py: Added test function for iwv(). 2016-10-13 Lukas Kluft * typhon/geodesy/tests/test_geodesy.py: Added simple tests for all remaining functions in geodesy. Removed automatic iterative conversion tests for all ellipsoid models. It seems to be fine to check the conversion for the default ellipsoid model WGS84. * typhon/geodesy/__init__.py: Include boundaries when checking the range of orbit inclination in ellipsoid2d(). Fixed docstrings and syntax. 2016-10-13 Lukas Kluft * typhon/arts/griddedfield.py: Implemented comparison. Implemented __eq__() and __neq__() to provide comparison functionality for GriddedField objects. * typhon/arts/tests/test_griddedfield.py: Test the equality and non-equality of reference GriddedField objects. 2016-10-10 Lukas Kluft * typhon/geodesy/__init__.py: Fixed documentation. 2016-10-10 Lukas Kluft * typhon/geodesy/__init__.py: ellipsoid_r_geodetic() and ellipsoid_r_geocentric() now take float and ndarray as lat argument. * typhon/geodesy/tests/test_geodesy.py: Added checks for ellipsoid_r_geodetic() and ellipsoid_r_geocentric(). 2016-10-10 Lukas Kluft * typhon/latex.py: Moved from typhon.utils as it does not really fit there. * typhon/__init__.py, typhon/utils/__init__.py: Fixed imports. * doc/latex.rst, doc/modules.rst, doc/utils.rst: Updated documentation. 2016-10-07 Lukas Kluft * typhon/geographical.py: General functions for manipulation geographical data. Currently containing a function to calculate area weighted mean. * typhon/__init__.py: Import new module. * doc/geographical.rst, doc/modules.rst: Included new module in the documentation. 2016-10-07 Richard larsson * typhon/geodesy/__init__.py (cartposlos2geocentric): Fixed logic bug and made explicit the differences from the atmlab version 2016-10-07 Lukas Kluft * typhon/geodesy/__init__.py Removed make_same_size() as it can be replaced with np.broadcast_arrays(). Several PEP8 fixes. I barely touched any functionality and the code produces the same results for a couple of dummy values. 2016-10-07 Lukas Kluft * typhon/physics/__init__.py: Perform 'import *' on all modules in the physics package. This leads to a flatter package hierarchy. Moved all functions to new module typhon.physics.em. * typhon/physics/em.py: Moved all functions related to the electro-magnetic spectrum to this module. * typhon/physics/thermodynamics.py: Use absolute imports. * typhon/physics/units/__init__.py: Perform 'import *' on all modules in the physics.units package. * typhon/physics/units/common.py, typhon/physics/units/constants.py, typhon/physics/units/em.py, typhon/physics/units/thermodynamics.py: Use absolute imports. * doc/physics.rst: Adjusted documentation to match the new hierarchy. 2016-10-06 Lukas Kluft * typhon/physics/units/constants.py: Added a module for constants with pint units. The values are taken from typhon.physics.constants to ensure consistency within typhon. * typhon/physics/units/em.py: Removed conversion functions as they are not needed. * typhon/physics/units/thermodynamics.py (density): Added new default value for R (taken from new constant module). 2016-10-06 Lukas Kluft * typhon/plots/tests, typhon/plots/tests/test_mplstyles.py: Removed test for typhon matplotlib stylesheets (not useful anymore). 2016-10-06 Richard larsson * typhon/geodesy/__init__.py (cartposlos2geocentric): Ported from atmlab. Should work the same way or at least without regression 2016-10-04 Lukas Kluft * typhon/math/__init__.py (sum_digits): Function to calculate the sum of digits. 2016-10-04 Oliver Lemke * doc/oem.rst: Remove sentence about oem docs not working. Remove duplicate description text. 2016-10-04 Gerrit Holl * typhon/datasets/_tovs_defs.py: Fix syntaxerror in previous commit. 2016-10-03 Gerrit Holl * typhon/datasets/_tovs_defs.py: - Add defiitions for NOAA11, NOAA10, NOAA9. We don't have definitions for older NOAA, so use NOAA9. Use with caution. 2016-10-03 Gerrit Holl * typhon/datasets/tovs.py: - Rearrange some code between superclasses * typhon/datasets/_tovs_defs.py: - Add definitions for noaa14, noaa12, work in progress 2016-09-30 Gerrit Holl * typhon/typhon/datasets (HIRS): - Add re to HIRS definition. Include cases where it starts with a prefix of (L\d*) for some reason. 2016-09-30 Lukas Kluft * typhon/arts/__init__.py (run_arts): By default an exception is raised if the ARTS run failed. This behaviour can the disabled with the ignore_error keyword. 2016-09-28 Gerrit Holl * typhon/datasets/tovs.py: (HIRS.calc_time_since_last_calib): - Fix bug introduced when reducing memory usage, now returns correct tsc in seconds (float) again, I hope. (HIRSHIRS._read) - Add time field, needs more checking though. * typhon/datasets/dataset.py: (Dataset.read_period): - Fix bug that was destroying flags by turning a masked array into a regular array. - Don't report success when no data were available. (NetCDFDataset._read): - Use masked arrays and respect fillvalues accordingly, if available. 2016-09-28 Gerrit Holl : * typhon/plots/__init__.py(plot_distribution_as_percentiles): - Bugfix: should omit label for repeated pattern for higher percentiles if no locallib is passed. * typhon/dataset/dataset.py: (Dataset.read_period): - Rather than gathering a list of ndarrays, dynamically guess the size of the final ndarray required and copy data into there directly. This reduces memory consumption by at least a factor two. Uses a maximum size, contained in the `maxsize` attribute, which causes it to refuse to even start reading years of data when the estimated size will be too large (it will give up at 10% at the moment). (Dataset.combine): - Allow fo other_data to be passed directly. Also, support non-masked-arrays. (MultiFileDataset.iterate_subdirs): - Bugfix for the case where all granules are in the same directory (no sorting by year). * typhon/datasets/tovs.py: (HIRS.calc_time_since_last_calib): - Calculate time since last calibration cycle (HIRSHIRS): Added class for Brockmanns HIRSHIRS collocations. 2016-09-27 Lukas Kluft * typhon/physics/__init__.py: Added documentation to all spectroscopic conversion functions. Conversion functions are now properly included in __all__. 2016-09-23 Gerrit Holl : * typhon.plots.__init__.py(plot_distribution_as_percentiles): - Bugfix, correct keywoard is linestyle, not ls. * typhon/datasets/tovs.py: (ATOVS): - Started this class to collect functionality in common between HIRS and other ATOVS readers. Currently designed as a mixin but could also be designed as a subclass of MultiFileDataset. Don't remember right now why that didn't work. (HIRS._read): - When filtering firstlines fails, catch the KeyError and instead raise a more useful InvalidFileError, so that the caller can more specifically catch this problem. (HIRSKLM.get_mask_from_flags): - For scanlines that don't observe Earth, mask not only BT but also radiance. (MHSL1C): - Class to read MHS L1C files in NetCDF, such as the ones converted by people in Hamburg (kudos to... Oliver?) * typhon/datasets/dataset.py(NetCDFDataset._read): - Do some evil trickery to convert some form of NetCDF file with groups to a structured array. This is likely to be changed, the proper way would be with structured subdtypes. Use with care! 2016-09-20 Gerrit Holl : * typhon/datasets/tovs.py(HIASI.combine): - Overload method in this particular case, so that I pick out the correct one from each scanline. 2016-09-20 Gerrit Holl : * typhon/datasets/dataset.py(Dataset.combine): Re-implemented combination algorithm, now runs in O(n) (I think) rather than O(n²). 2016-09-20 Lukas Kluft * typhon/physics/units/thermodynamics.py: Added function to calculate Rayleigh-Jeans approximation. * typhon/physics/__init__.py: PEP8 fixes. 2016-09-20 Lukas Kluft * typhon/plots/__init__.py: Added function to return all available mplstyles. * doc/pyplots/stylesheet_gallery.py: Use newly implemented function to loop over all styles. 2016-09-19 Gerrit Holl : * typhon/datasets/dataset.py(Dataset.combine): - Duh, time difference should be SMALLER than tolerance, not larger! 2016-09-19 Gerrit Holl : * typhon/math/stats.py(get_distribution_as_percentiles): - Explicitly get rid of masked arrays — scoreatpercentile otherwise will return incorrect results. * typhon/datasets/tovs.py: (HIRS.get_temp) (HIRSPOD.get_temp): - Bugfix, wrong size for patch_exp, fsr (HIASI): New class for Vijus HIRS-IASI collocations * typhon/datasets/dataset.py: (Dataset.combine): - Expand for situation where self and other do not have the same name for things. - Allow explicit tolerance for datetime64 options; does not support isclose but anyway might want larger tolerance. (MultiFileDataset.find_granules): - Be more verbose when stuff isn't found. (NetCDFDataset): - New class for products in NetCDF, tries to cleverly read NetCDF dataset into structured ndarray. 2016-09-19 Lukas Kluft * doc/modules.rst: Removed thermodynamics. * doc/physics.rst: Added new subpackages for physics. * doc/thermodynamics.rst: Removed documentation. * typhon/datasets/tovs.py: Fixed import. * typhon/physics/units/__init__.py: Import thermodynamics. * typhon/physics/units/common.py: Added module docstring. * typhon/physics/units/em.py: Added module docstring. * typhon/physics/units/thermodynamics.py: New module to implement wrappers for functions in typhon.physics.thermodynamics. 2016-09-19 Lukas Kluft * typhon/__init__.py: Removed import of thermodynamics. * typhon/atmosphere.py: Fixed import of thermodynamics. * typhon/physics/__init__.py: Import thermodynamics. Do not import units. * typhon/physics/em.py: Moved to typhon/physics/units/em.py. * typhon/physics/units: New sub-package for calculations with units. * typhon/physics/units/__init__.py: New file. * typhon/physics/units/common.py: Common UnitRegisrty definitions. * typhon/thermodynamics.py: Moved to typhon/physics/thermodynamics.py: * typhon/datasets/dataset.py: Fixed import of em. * typhon/plots/tests/test_mplstyles.py: Replaced outdated test of install_mplstyles(). 2016-09-19 Oliver Lemke * typhon/math/stats.py (adev): Fix formula formatting and parameters. 2016-09-19 Lukas Kluft * typhon/plots/__init__.py: Removed install_mplstyles(). The function install_mplstyles() has been replaced by styles(). The new implementation returns the absolute path to a given stylesheet instead of creating a symlink in the user's matplotlib config directory. * typhon/plots/stylelib/typhon.mplstyle: The property cycler no longer cycles through linewidths. It is a bit too unintuitive to cycle all three line properties at once. If you want to restore the old behaviour you can use the 'typhon-fullcycler' style. * typhon/plots/stylelib/typhon-fullcycler.mplstyle: Restore the old porperty cycler for color, linestyle and linewidth. * typhon/plots/stylelib/typhon-geometry.mplstyle: Set the figures geometry (figure size, font sizes, ...) but use the default colors and colormaps. * ChangeLog: Not commited the last time... * doc/pyplots/plot_vorticity.py: Removed unused import. * doc/pyplots/stylesheet_gallery.py: Adapted for the new way of style handling. 2016-09-16 Lukas Kluft * typhon/geodesy/__init__.py, typhon/physics/__init__.py: Add docs for types of input arguments and return values. 2016-09-16 Oliver Lemke * typhon/geodesy/__init__.py: Convert to unix line endings. Remove unused scimath import. (geographic_mean): Add altitude with default 0. 2016-09-15 Oliver Lemke * typhon/geodesy/__init__.py, typhon/physics/__init__.py: Remove __credits__ variables as they show up in editors with syntax checking as unused variables. Instead add a line to the docstring as a hidden Sphinx comment noting that the function originates from atmlab and state the original author. * typhon/arts/xml/write.py: (ARTSXMLWriter.write_basic_type): Set default value of attr to None. (ARTSXMLWriter.write_header): Remove obsolete arg from docs. (ARTSXMLWriter.write): Don't use str as a parameter name. (ARTSXMLWriter.write_ndarray): Remove redundant parenthesis. 2016-09-15 Lukas Kluft * typhon/physics/__init__.py: Ported Fresnel and Snell functions from atmlab. 2016-09-15 Lukas Kluft * typhon/arts/catalogues.py: Reimplemented Sparse class. The Sparse class is now a simple wrapper around SciPy's csc_matrix. The usage of both classes is exactly the same, the only differences are additional reading and writing functions for XML files as well as ARTS-consistent attributenames. Changes are **not** backwards compatible! Code relying on the old implementation of Sparse will fail and has to be adapted. 2016-09-13 Oliver Lemke * typhon/version.py: Set DEVBUILD back to True after release. 2016-09-13 Oliver Lemke * typhon/version.py: 0.3.2 Release. 2016-09-13 Oliver Lemke * typhon/plots/stylelib/typhon.mplstyle: Revert (presumably accidental) change of default font size and linewidth to huge values. 2016-09-12 Lukas Kluft * typhon/constants.py: Fixed attribute names for consistency. 2016-09-12 Lukas Kluft * typhon/constants.py: Molar masses for dry air and water vapor are now listed in SI units. Old definitions from Wallace and Hobbs are deprecated and will be removed in a future version! Gas constants for dry air and water vapor are calculated on the fly using the previously defined gas constant and molar masses. Added Earth characteristics. Fixed inline documentation. 2016-09-12 Lukas Kluft * typhon/constants.py: Added some constants and restructured the whole module. * typhon/physics/__init__.py: Add docs for types of input arguments and return values. * typhon/plots/__init__.py (figsize): Use golden ratio from typhon.constants. 2016-09-08 Oliver Lemke * typhon/atmosphere.py, typhon/thermodynamics.py: Add docs for types of input arguments and return values. 2016-09-06 Oliver Lemke * typhon/cm/__init__.py: Rename cmap to cm in module scope loop. Avoids warnings about it being shadowed when the name cmap is used as function argument name in other functions. (mpl_colors): Make n argument lowercase. * typhon/cm/_cmocean.py, typhon/cm/_cm.py: Initialize datad as dictionary literal. * typhon/utils/__init__.py (Timer): Fix typo in docs r -> t. * typhon/utils/latex.py: Add import numpy to docs. * typhon/utils/metaclass.py: Rename first argument to __new__ from meta to mcs to adhere to python naming conventions. Analog to using cls in class methods. 2016-09-06 Oliver Lemke * typhon/plots/__init__.py: (figsize): Fix doc that was still referencing to cm module. Add import statements to docs to enable better consistency checking. (plot_distribution_as_percentiles): Make d_ls lowercase. Initialize locallab early to avoid it being possibly used uninitialized. (install_mplstyles): Add import statements to docs. Add import for matplotlib.style. reload_libary was unknown. 2016-09-06 Oliver Lemke * typhon/arts/__init__.py: Import GriddedField4. (run_arts): Change variable arts_out to lowercase. Change reportlevel in example to string. 020 cannot be passed as a number. In old python versions it would be interpreted as an octal number(not what we want). In Python 3.5 it's a syntax error. * typhon/arts/catalogues.py: Obey max line length. Remove unnecessary parenthesis after class names. * typhon/arts/griddedfield.py: Move all property documentation into getter. * doc/developer.rst: Add info on documenting properties. * typhon/constants.py: Obey max line length. * doc/modules.rst: Fix module order arts.xml - atmosphere. 2016-09-02 Oliver Lemke * typhon/arts/scattering.py: Remove future import. (SingleScatteringData.to_atmlab_dict, ScatteringMetaData.to_atmlab_dict): Use dict literal for initialization. (SingleScatteringData.__init__): Initialize known attributes with None. 2016-09-02 Oliver Lemke * typhon/arts/catalogues.py: (SpeciesAuxData.from_xml): Raise exception if version is unknown. (Sparse.from_csc_matrix): Small doc fix. 2016-09-02 Oliver Lemke * typhon/math/array.py: Autopep8. * typhon/math/stats.py: Remove unused import matplotlib.mlab. Autopep8. * typhon/oem/__init__.py: Remove unused import numpy. * typhon/physics/__init__.py: Autopep8. * typhon/plots/__init__.py: Remove unused import matplotlib.style. Autopep8. * typhon/utils/__init__.py, typhon/utils/cache.py: Autopep8. * typhon/utils/latex.py: Remove unused import numpy. Use 'if isinstance() ...' instead of 'if type() is ...'. * typhon/utils/metaclass.py: Remove unused import numpy. Autopep8. 2016-09-02 Lukas Kluft * typhon/geodesy/__init__.py: Fixed porting leftovers. Raise exceptions instead of calling error(). Bug reported by Oliver. 2016-09-02 Oliver Lemke * typhon/arts/__init__.py: Use 'if isinstance() ...' instead of 'if type() is ...'. Remove unused import sys. Autopep8. * typhon/arts/xml/read.py: Use explicit import instead of *. * typhon/arts/xml/write.py: Use explicit import instead of *. Use 'if isinstance() ...' instead of 'if type() is ...'. 2016-09-02 Lukas Kluft * typhon/atmosphere.py: Fixed function name. The abbreviation for integrated water vapor is IWV. 2016-09-01 Oliver Lemke * typhon/arts/catalogues.py, typhon/arts/catalogues.py: Autopep8. Remove unnecessary imports (griddedfield.* and numbers). Use 'if isinstance() ...' instead of 'if type() is ...' because isinstance also takes into account inheritance. * typhon/arts/retrieval.py: Remove unnecessary import numpy. * typhon/arts/scattering.py, typhon/arts/utils.py: Use 'if isinstance() ...' instead of 'if type() is ...'. * typhon/arts/types.py: Replace all import * with explicit lists. 2016-09-01 Oliver Lemke * typhon/physics/{em,units}.py: Autopep8 fixes. 2016-08-31 Lukas Kluft * typhon/atmosphere.py: Added new module. Module containing functions directly related to atmospheric sciences. * typhon/__init__.py: Import atmosphere module. * typhon/constants.py: Added clearnames for gas constants. * typhon/thermodynamics.py: Added function to calculate the density of gases by application of ideal gas law. * doc/atmosphere.rst: Documentation for new module. * doc/modules.rst: Added new module to table of contents. 2016-08-28 Lukas Kluft * typhon/math/__init__.py: Added a function to calculate column integrals. 2016-08-27 Lukas Kluft * typhon/constants.py: Added aliases for some constants to make them usable via their clear name. * typhon/physics/__init__.py: Added planck functions for frequency and wavelength. 2016-08-23 Gerrit Holl * typhon/plots/__init__.py(get_subplot_arrangement): - Added a function to calculate a perhaps-not-entirely-optimal-but-still-acceptable subplot arrangement depending on how many subplots are to be arranged. * typhon/datasets/tovs.py(HIRS._read): - Check whether times make sense. Raise error if they don't. 2016-08-18 Lukas Kluft * typhon/geodesy/__init__.py: Added functions to calculate grate-circle distance, and geographical mean of coordinates. 2016-08-18 Lukas Kluft * typhon/cm/__init__.py: Added functions to export matplotlib colormaps to txt and cpt files. 2016-08-17 Gerrit Holl * typhon/utils/cache.py: - Add warning on memory usage, as this one keeps a copy in case an object is mutable - Add capability to suppress or clear cache on a single call * typhon/plots/__init__.py(plot_distribution_as_percentiles): - Fix bug when no label is passed * typhon/datasets/tovs.py: - Only do progressbar when sys.stdout is a terminal - Add workaround for numpy issue 4895. * typhon/datasets/_tovs_defs.py: - Add CPIDS for NOAA16 and 17 HIRS. * typhon/datasets/dataset.py(read_period): - Add capability for filters (arbitrary functions) in addition to limits (dict with boundaries), exactly like in atmlab. - Only do progressbar is sys.stdout is a tty. 2016-08-17 Lukas Kluft * typhon/arts/sensor.py: Fixed typo in __all__. * doc/geodesy.rst: Fixed documentation header. 2016-08-17 Lukas Kluft * typhon/arts/xml/__init__.py: Added function load_directory() to load all XML files in a given directory. * typhon/cm/_cmocean.py: Added colormap 'difference'. The new colormap is a variant of a blue-to-red colormap which fits the overall impression of the other colormaps shipped with typhon. * typhon/geodesy/__init__.py, typhon/thermodynamics.py: Fixed syntax errors in reStructuredText for sphinx documentation. * doc/geodesy.rst: Fixed module import. 2016-08-17 Lukas Kluft * typhon/geodesy: Renamed from typhon/geodetic. * typhon/geodesy/__init__.py: inrange() now takes the keyword argument 'exclude' to exclude one or both boundaries from the check. * typhon/geodesy/tests/test_geodesy.py: Renamed from typhon/geodesy/tests/test_geodetic.py: * typhon/__init__.py: Fixed import from geodetic to geodesy. * doc/geodesy.rst: Renamed from doc/geodetic.rst. * doc/modules.rst: Renamed module geodetic to geodesy. 2016-08-16 Lukas Kluft * typhon/geodetic/__init__.py: Ported all ellipsoid related functions. Added checks for valid excentricity wherever a ellipsoid model is used. Added information about original authors to all functions. * typhon/geodetic/tests/test_geodetic.py: Added a test to check all models shipped with typhon for valid excentricity. 2016-08-16 Lukas Kluft * typhon/geodetic/__init__.py: Added functions to convert between geocentric and geodetic coordinates. * typhon/geodetic/tests/test_geodetic.py: Test the conversion between geodetic and geocentric coordiantes (there and back) for all available ellipsoid models. 2016-08-16 Lukas Kluft * typhon/geodetic/__init__.py: Added functions to convert between cartesian and geodetic coordinates. * typhon/geodetic/tests/test_geodetic.py: Test the conversion between geodetic and cartesian coordiantes (there and back) for all available ellipsoid models. Test for cartesian/geocentric conversion are merged into one test case each using arrays. 2016-08-15 Lukas Kluft * typhon/arts/__init__.py: Import module sensor and add it to namespace. Added two functions to interact and manipulate GriddedField4 storing atm_fields_compact. * typhon/arts/sensor.py: Renamed functions to be more pythonic. 2016-08-12 Lukas Kluft * typhon/geodetic/__init__.py, typhon/physics/__init__.py: Removed constants from __all__ definition in both sub-packages. 2016-08-12 Lukas Kluft * typhon/thermodynamics.py: Currently containing functions related to water vapor and its thermodynamic effects. * typhon/__init__.py: Import constants and thermodynamics. * typhon/physics/constants.py, typhon/geodetic/constants.py, typhon/constants.py: Combined all constant definitions in top level module. * typhon/datasets/_tovs_defs.py, typhon/physics/__init__.py, typhon/physics/em.py, typhon/geodetic/__init__.py: Fixed import of top level constants module. * doc/constants.rst, doc/geodetic.rst, doc/modules.rst, doc/physics.rst, doc/thermodynamics.rst: Updated the module list and adapted the move of the constants module. 2016-08-11 Lukas Kluft * typhon/geodetic/__init__.py: Added functions to convert between cartesian and spherical coordinates. * typhon/geodetic/tests: Unittests for geodetic functions. * typhon/geodetic/tests/test_geodetic.py: Test the conversion between cartesian and spherical coordinates for three fixed points. Additionally convert coordinates back and forth. 2016-08-11 Lukas Kluft * typhon/geodetic: Started porting the atmlab geodetic functions to python. * typhon/geodetic/__init__.py: Functions for handling geographical coordinate systems and reference ellipsoids. * typhon/geodetic/constants.py: Collection of physical constants and conversion factors. * typhon/__init__.py: Import typhon.geodetic. * doc/geodetic.rst: Documentation for geodetic sub-package. * doc/modules.rst: Added typhon.geodetic to toc. 2016-08-11 Oliver Lemke * typhon/version.py: Set DEVBUILD back to True after release. 2016-08-11 Oliver Lemke * typhon/version.py: 0.3.1 Release. * typhon/datasets/tovs.py (HIRSKLM.calibrate): Fix doc indentation to avoid sphinx error. 2016-08-10 Lukas Kluft * typhon/arts/__init__.py: Added functionality to write stdout and stderr to ASCII files. This can be toggled using the writetxt keyword. 2016-08-05 Lukas Kluft * typhon/arts/__init__.py: Added wrapper to run ARTS jobs. Implemented function run_arts() to run ARTS jobs in a pythonic way. 2016-08-04 Gerrit Holl * typhon/physics/em.py: Various small bugfixes 2016-07-21 Lukas Kluft * doc/cm.rst: Added example plot for vorticity colormap. * doc/pyplots/plot_vorticity.py: Create example for vorticity colormap. Plotting test data to give an example for the vorticity colormap. * doc/pyplots/plot_velocity.py: Fixed docstring. 2016-07-20 Lukas Kluft * doc/cm.rst: Added example plot for velocity colormap. * doc/pyplots/plot_velocity.py: Create example for velocity colormap. Plotting the meridional wind to give an example for the velocity colormap. 2016-07-15 Gerrit Holl * typhon/utils/__init__.py: Added safe_eval Added safe_eval function, from where it is somewhat safe to pass eval code from a not entirely trusted source. Supports numbers and basic expressions. * typhon/datasets/tovs.py: Added classes related to HIRS and IASI Added a hierarchy of classes for reading HIRS and IASI data. This module has a soft dependency on pint. * typhon/datasets/_tovs_defs.py: Definitions needed by tovs module. * doc/datasets.rst: Add tovs module (but not _tovs_defs). 2016-07-15 Oliver Lemke * typhon/physics/__init__.py: s/unit/units/ in __all__. 2016-07-15 Gerrit Holl * typhon/physics/__init__.py: Added package * typhon/physics/constants.py: Added module with physical constants. * typhon/physics/units.py: Added module handling units. Note that this module has a soft dependency on the `pint` units library. Any module importing physics.units will also have this dependency. If you do not want your code to depend on the `pint` units library, do not import `physics.units` or any of its dependencies. Any module with this dependency shall state so in the module docstring. * typhon/physics/em.py: Module with EM-related classes and functions. Added class SRF for the description of spectral response functions and the calculation thereof. Added various smaller functions for EM-related conversions. * doc/physics.rst: Added * doc/modules.rst: Added physics package and modules. 2016-07-14 Lukas Kluft * doc/conf.py: Set highlight_Language to python3. * doc/oem.rst: Uncomment automodule for typhon.oem. Included decent documentation for the OEM module. By setting the highlight_language to python3 it is possible to display the matrix operator (@) in the documentation. 2016-06-29 Gerrit Holl * typhon/math/stats.py: - Add function to calculate Allan Devation * typhon/plots/stylelib/typhon.mplstyle: - Make figure title (suptitle) size consistent with axes title size. * typhon/datasets/dataset.py: - Fix bug related to boundary cases when ensuring last data from previou granule also read. 2016-06-22 Lukas Kluft * doc/developer.rst: Fixed broken link to Google Python Style Guide. * doc/pyplots/_data/test_data.nc: Increased resolution of test data. 2016-06-15 Gerrit Holl * typhon/math/array.py: - Added function that calculates the bit parity of all integers in an array. This is used in the HIRS reading routine that I will be adding at some point. * typhon/datasets/dataset.py: - Bugfix when instant is near the end of a day/month/year 2016-06-13 Gerrit Holl * typhon/datasets/dataset.py(Dataset.read_period): - Actually read all measurements in period, including those contained in a granule starting before the starting time. Do not return measurements beyond the end of the indicated period. 2016-06-10 Gerrit Holl * typhon/datasets/dataset.py: Use the logging module to warn when no directories are found. Inherit InvalidDataError from ValueError. 2016-06-03 Gerrit Holl * typhon/datasets/dataset.py: Added capability to skip the first several lines of a granule, if they are contained in the previous one. Note that this is not always the correct method; sometimes the quality of either one is better. Ideally, what granule to take a scanline from should be chosen on a case-by-case basis. 2016-05-23 Lukas Kluft * typhon/utils/__init__.py: Added class to provide a simple time profiling utility. 2016-05-20 Gerrit Holl : * typhon/utils/cache.py: Bugfix - Now I realise why functools.lru_cache refuses to cache mutable results... duh! The mutable result gets altered earlier or later, so it's not an actual cache of the object. As a workaround (I still want to cache it!) I'm caching a copy. * typhon/datasets/dataset.py: Bugfix - Something was going disastrously wrong in find_granules_sorted. It doesn't seem to go nearly as disastrously wrong now. It might even be miraculously correct. 2016-05-20 Lukas Kluft * typhon/plots/stylelib/typhon.mplstyle: Changed default mathtext font. 2016-05-17 Oliver Lemke * typhon/version.py: Set DEVBUILD back to True after release. 2016-05-17 Oliver Lemke * typhon/version.py: 0.3.0 Release. * setup.py: Change dev status to '4 - Beta'. 2016-05-17 Lukas Kluft * typhon/utils/__init.py__: Added function extract_block_diag() to extract blocks around the diagonal of a square matrix. 2016-05-11 Lukas Kluft * typhon/arts/xml/__init__.py: Added keyword argument 'comment' to save() function. A string passed as comment is included within a comment tag at the top of the XML file. * typhon/arts/xml/write.py: Implemented function write_comment() to write strings into a comment tag. 2016-05-11 Lukas Kluft * typhon/arts/xml/read.py: Fixed the handling of comments. Comment tags are now handled properly. If a XML file contains a comment only None is returned. Comments within a file storing actual data are ignored. * typhon/arts/xml/tests/test_matpack_types.py: Added two test cases to check the handling of comments in XML files. * typhon/arts/xml/tests/reference/arrayofindex-comment.xml: ArrayOfIndex with additional comment tag. * typhon/arts/xml/tests/reference/comment.xml: Only a comment tag. 2016-05-11 Lukas Kluft * doc/_static/increased_width.css: CSS style with increased maxwidth. The maximum width for the documentation is increased to prevent plots using the typhon style from being scaled. * doc/_templates/layout.html: Use added CSS style for the default documentation layout. * typhon/plots/stylelib/typhon.mplstyle: Switched yellow and cyan in colorcycle. This way blue hues do not follow each other when the cycle starts over again. 2016-05-11 Oliver Lemke * typhon/version.py: Set DEVBUILD back to True after release. 2016-05-11 Oliver Lemke * typhon/version.py: 0.2.16 Release. * ChangeLog: Minor formatting fixes. 2016-05-10 Lukas Kluft * doc/plots.rst: Show source and generated plots of stylesheet_gallery.py * doc/pyplots/stylesheet_gallery.py: Generate example plots using the classic style and all styles shipped with typhon. 2016-05-03 Lukas Kluft * typhon/plots/stylelib/typhon.mplstyle: Improved the overall look of the typhon style sheet. Changes include grid settings, adjusted linewidths and fine tuned scientific notation limits. 2016-05-02 Oliver Lemke * typhon/arts/griddedfield.py, typhon/arts/scattering.py: Added convenience method to_atmlab_dict to GriddedField, ScatteringMetaData and SingleScatteringData. 2016-05-02 Lukas Kluft * typhon/plots/__init__.py: Import matplotlib.style * typhon/plots/tests: Tests for the plots package. * typhon/plots/tests/test_mplstyles.py: Module to provide test functions. Currently containing test_install_mplstyle() to check if all mplstyles get installed. 2016-05-02 Oliver Lemke * typhon/version.py: 0.2.15 Release. * MANIFEST.in: Add xml.bin test files. 2016-05-02 Oliver Lemke * MANIFEST.in: Add mplstyle and xml test files. 2016-04-29 Oliver Lemke * typhon/version.py: Set DEVBUILD back to True after release. 2016-04-29 Oliver Lemke * typhon/version.py: 0.2.12 Release. 2016-04-29 Oliver Lemke * typhon/__init__.py, setup.py: Previous fix didn't work. Of course an import of typhon.version also imports typhon/__init__.py. *duh* Next try: Add a flag __TYPHON_SETUP__ to builtins in setup.py and set it to True. This way __init__.py can determine if it is imported normally or during setup process. During setup, only __version__ is provided and all other imports are omitted. * typhon/version.py: Use 'dev' instead of 'unknown'. 2016-04-29 Oliver Lemke * typhon/version.py: Set DEVBUILD back to True after release. * ChangeLog: Corrections to previous entries. 2016-04-29 Oliver Lemke * typhon/version.py: 0.2.11 Release. * doc/conf.py: Update copyright year. 2016-04-29 Oliver Lemke * typhon/__init__.py, typhon/version.py: Seperate version handling from __init_.py. Otherwise we need to import typhon/__init__.py into setup.py. This shouldn't be done as it makes setup.py dependent on all external packages imported by __init__.py. Anaconda skeleton pypi build hopefully works again now. * typhon/version.py: Don't fail completely if there is a problem determining the svn revision number. Just set it to 'unknown' in that case. * setup.py: Import typhon.version instead of typhon. 2016-04-29 Oliver Lemke * typhon/__init__.py: Set DEVBUILD back to True after release. 2016-04-29 Oliver Lemke * typhon/__init__.py: 0.2.10 Release. 2016-04-28 Lukas Kluft * ChangeLog: Fixed typo. * typhon/plots/stylelib/typhon.mplstyle: Fixed syntax error. 2016-04-28 Lukas Kluft * KNOWN_ISSUES: prop_cycle through linestyles and linewidths breaks the usage of keyword aliases in matplotlib functions. * typhon/plots/stylelib/typhon.mplstyle: Added TODO comment on prop_cycle issue. 2016-04-27 Lukas Kluft * typhon/plots/__init__.py: Added examples to install_mplstyles() docstring. 2016-04-27 Lukas Kluft * typhon/plots/stylelib/typhon.mplstyle: Increased linewidths in propcycle by 1 as the smallest should be 2. 2016-04-27 Lukas Kluft * typhon/plots/stylelib/typhon.mplstyle: Automatically change linestyle after cycling through all available colors. This extends the number of different styles to 18 (6 colors, 3 linestyles). The linewidth for dashed and dotted lines is increased to adjust their look in comparison to solid lines. 2016-04-22 Lukas Kluft * typhon/plots/__init__.py: install_mplstyles() overwrites symlinks and automatically reloads the stylesheet library. * typhon/plots/stylelib/typhon.mplstyle: Replace the default colorcycle with more muted colors. 2016-04-21 Lukas Kluft * typhon/plots/__init__.py: Added install_mplstyles() to create symbolic links for matplotlib stylesheets shipped with typhon. * typhon/plots/stylelib: Directory to store matplotlib stylesheets. * typhon/plots/stylelib/typhon.mplstyle: Matplotlib stylesheet to overwrite the default values for rc params. 2016-04-21 Oliver Lemke * setup.py: Remove author_email. Update homepage url. 2016-04-20 Oliver Lemke * typhon/__init__.py: Set DEVBUILD back to True after release. 2016-04-20 Oliver Lemke * typhon/__init__.py: 0.2.9 Release. 2016-04-05 Lukas Kluft * typhon/arts/griddedfield.py: Added examples on how to create and use a GriddedField object. 2016-03-24 Gerrit Holl * typhon/datasets/dataset.py: - Try to show a progressbar to show the progress on reading a large amount of data. Only works when the progressbar module is available — see https://pypi.python.org/pypi/progressbar2 - Fig bug when no fields are mandatory. 2016-03-22 Gerrit Holl * typhon/datasets/dataset.py: - Raise a specific exception with a helpful error message if mandatory fields are missing or have invalid values. 2016-03-22 Gerrit Holl * typhon/datasets/dataset.py: - Don't require name, fallback to attribute then to class name. 2016-03-21 Gerrit Holl * typhon/utils/metaclass.py: - When inheriting a docstring, state what class the docstring was inherited from. 2016-03-18 Gerrit Holl * typhon/datasets/dataset.py(Dataset.read_period): - Add filtering ability to reading long period. 2016-03-18 Gerrit Holl * typhon/math/array.py(limit_ndarray): - New function to select elements from structured ndarray based on ranges. Inspired by a similar function in atmlab. 2016-03-18 Oliver Lemke * typhon/__init__.py: Improve revision regex. 2016-03-18 Oliver Lemke * typhon/__init__.py: Improved version number handling. The svn revision number was not correctly updated (reported by Gerrit). The current svn revision is now extracted from 'svn info' for development versions and appended to the installed package version. However, because the svn version cannot be determined for installed packages, typhon.__version__ has the string '+dev' appended for development versions. This also changes the convention for version number increases. The version number is now increased before release, not after. 2016-03-17 Gerrit Holl * typhon/datasets/dataset.py: (Dataset): Make Dataset class semi-singleton. For a particular class, there should be only one object with the same name. If one attempts to create one with an already-existing name, the existing object is returned. (Dataset.read_period): Add provision to pass on arguments to find_granules and to the reader. 2016-03-10 Oliver Lemke * typhon/datasets/dataset.py: Fix sphinx warnings. * doc/config.rst, doc/math.rst: Added. * doc/cm.rst, doc/files.rst, doc/oem.rst, doc/plots.rst, doc/utils.rst: Remove some unnecessary headings. 2016-03-09 Gerrit Holl * typhon/math/array.py: Added Collection of math-related functions that are uniquely for array, such as reduction operators. Added one function, 'localmin', that returns a mask with True at the locations where a 1-D array has a local minimum. * typhon/math/__init__.py: Added stats, array * doc/modules.rst: Added math 2016-03-08 Oliver Lemke * setup.py: Remove python 3.4 from supported languages because we now use the new @ matrix operator from python 3.5. 2016-03-08 Lukas Kluft * KNOWN_ISSUES: Added info about failing sphinx build for oem module. * doc/oem.rst: Added disclaimer that the documentation is currently not working. * doc/plots.rst: Fixed heading syntax. 2016-03-07 Lukas Kluft * doc/modules.rst: Added new module oem. * doc/oem.rst: Documentation for oem module. The autogeneration of function documentation is currently not working. Sphinx seems to have trouble interpreting the @ operator for highlighted code blocks. * typhon/__init__.py: Import oem module by default. * typhon/oem: New module to provide functions related to the Optimal Estimation Method. * typhon/oem/__init__.py: Currently containing functions to calculate the error covariance matrix as well as the averaging kernel matrix. 2016-03-07 Oliver Lemke * typhon/__init__.py: Fix runtime error when calling _runtest() from jupyter qtconsole and notebook. Bug reported by Lukas. 2016-03-03 Gerrit Holl * typhon/plots/__init__.py: Added function to plot y vs. x as a set of percentiles, essentially plotting the distribution over time. * typhon/math/stats.py: Added Added module with statisticas functions. Currently contains two binning utilities moved over from pyatmlab: one for 1-D binning, and one for n-D binning. They are functionally identical to their counterparts in atmlab. * typhon/math/__init__.py: Added Package to contain various maths-related modules. 2016-03-03 Gerrit Holl * typhon/utils/cache.py: Added missing 'import logging' * typhon/datasets/dataset.py: Numerous bugfixes 2016-03-01 Lukas Kluft * environment.yml: Removed typhon after discussion with Oliver. `pip install -e` should be the default way, so there is no need for typhon being a dependency in environment.yml 2016-03-01 Lukas Kluft * environment.yml: Added typhon to list of dependencies. typhon is now automatically installed when using environment.yml with conda. It is still possible to overwrite this version with a local development version using `pip install -e`. 2016-02-29 Lukas Kluft * typhon/arts/griddedfield.py: Replaced loop with dict comprehension. 2016-02-29 Oliver Lemke * typhon/__init__.py: Close the door, a tab snuck in. 2016-02-29 Oliver Lemke * typhon/__init__.py: Add revision to version number for development releases. 2016-02-26 Oliver Lemke * typhon/datasets/__init__.py: Fix typo in import. 2016-02-25 Gerrit Holl * typhon/utils/metaclass.py: Added New module to collect typhon-related metaclasses. Added two metaclasses: - DocStringInheritor. When a class with this metaclass has a method overridden, and the subclass method omits any docstring, it will automatically inherit the docstring from the superclass. - AbstractDocStringInheritor: the same, but for abstract classes. Those metaclasses are used by my dataset and collocation frameworks. * typhon/utils/cache.py: Added New module collecting functions related to caching. Python comes with functools.lru_cache but this doesn't do mutable objects. That's for a good reason, but I want to cache mutable objects anyway! Use at your own risk. For disk-stored memoisation, I like to use joblib, but this is not currently a typhon dependency. * typhon/utils/__init__.py: Also import new modules I added * typhon/datasets/__init__.py: Added. Import sole module. * typhon/datasets/dataset.py: Added New module containing classes for a framework abstracting datasets. Currently contains classes Dataset, SingleFileDataset, MultiFileDataset, SingleMeasurementPerFileDataset, and HomemadeDataset. Those are abstract classes, designed to be subclassed by classes implementing routines for specific datasets. I will soon add some specific dataset classes to typhon. It is possible that some parts of this module rely on numpy bugfixes that are only available from numpy 1.11, which is not released yet, as the latest version today is 1.11.0rc1. This might particularly be the case for structured masked multidimensional arrays. * typhon/config.py: Added New module to handle configuration. Configuration shall be used to describe such things as where datasets are located, thus separating description from implementation. * doc/datasets.rst: Added * doc/modules.rst: Updated * doc/utils.rst: Updated 2016-02-25 Oliver Lemke * typhon/__init__.py: Post-upload version bump to 0.2.7. 2016-02-25 Oliver Lemke * setup.py: Add netCDF4 and nose to requirements. * environment.yml: Added for easy conda env creation. 2016-02-23 Lukas Kluft * doc/pyplots/{plot_phase_sinus.py,plot_qualitative1.py}: Fixed import of function figsize. * doc/pyplots/plot_qualitative2.py: Fixed import of function figsize. Also increased number of used colors to show the whole colormap. 2016-02-23 Oliver Lemke * environment.yml: Added dependency file for easy environment creation with 'conda env create'. 2016-02-23 Lukas Kluft * doc/modules.rst: Added plots to list of modules. * doc/plots.rst: Documentation for module typhon.plots. * typhon/cm/__init__.py: Moved function figsize to typhon.plots. * typhon/plots: New module to provide plotting related functions. * typhon/plots/__init__.py: Currently providing the function figsize. 2016-02-19 Lukas Kluft * doc/cm.rst: Added a second example plot for Phase colormap. * doc/pyplots/plot_phase_sinus.py: New example plot to demonstrate the Phase colormap using sinus functions. * doc/pyplots/plot_qualitative1.py, doc/pyplots/plot_qualitative2.py: The figure size is now calculated using typhon.cm.figsize. * typhon/arts/xml/__init__.py (load): Added example to docstring. * typhon/cm/__init__.py (figsize): Added function to construct figure sizes matching the golden ration. 2016-02-18 Oliver Lemke * typhon/__init__.py: Post-upload version bump to 0.2.6. 2016-02-18 Lukas Kluft * typhon/__init__.py: Do not import cm automatically. The colormap module has to be imported directly using 'import typhon.cm'. * doc/pyplots/plot_density.py doc/pyplots/plot_phase.py doc/pyplots/plot_qualitative1.py doc/pyplots/plot_qualitative2.py doc/pyplots/plot_speed.py doc/pyplots/plot_temperature.py: Added the direct import of typhon.cm to the example plots. 2016-02-18 Oliver Lemke * typhon/__init__.py: Post-upload version bump to 0.2.5. 2016-02-18 Oliver Lemke * ChangeLog: Got lost in previous commit. * setup.py: Change status from Planning to Alpha. Remove Python 3.3 compatibility. Add setuptools and matplotlib to requirements. Add version numbers for numpy and scipy. * typhon/arts/__init__.py, doc/arts.rst: Move module description from doc to module. Add typhon.arts as automodule in doc. * typhon/arts/xml/__init__.py: Shorten module docstring. * typhon/arts/griddedfield.py: Lazy import of netCDF4 to avoid global dependency. 2016-02-17 Oliver Lemke * doc/cm.rst, doc/xml.rst: Renamed some headers. * typhon/arts/sensor.py: Fix typos. * typhon/arts/xml/__init__.py: Fix term. 2016-02-17 Oliver Lemke * doc/index.rst: Switch API/Dev order. Add short.description. 2016-02-17 Oliver Lemke * typhon/__init__.py: Post-upload version bump to 0.2.4. 2016-02-17 Oliver Lemke * DESCRIPTION.rst: Adapt. 2016-02-16 Lukas Kluft * doc/pyplots/plot_density.py, doc/pyplots/plot_phase.py, doc/pyplots/plot_speed.py, doc/pyplots/plot_temperature.py: Use pcolormesh instead of contourf to prevent the interpolation of data points. Wind directions are now displayed with quivers instead of barbs. Use a finer map resolution for better look. 2016-02-16 Oliver Lemke * typhon/__init__.py: Increased version to 0.2.3 after upload to PyPi. 2016-02-16 Oliver Lemke * doc/Makefile: Add target to upload docs for my own convenience. 2016-02-16 Oliver Lemke * doc/requirements.rtd: Removed again. The automatic build of the documentation through the readthedocs.org service fails if additional packages such as netCDF4 are required. Although packages can be set as requirements for the build, the pip install in their virtualenv fails in this case due to lack of HDF5. Similar problems will most likely occur later for other packages (e.g. basemap). This makes the readthedocs service useless for our purposes. The typhon docs have moved with immediate effect to http://www.radiativetransfer.org/misc/typhon/doc/ instead. That gives us much more flexibility. The rtd project has been removed. 2016-02-16 Oliver Lemke * doc/requirements.rtd: Add requirements file for build on readthedocs. 2016-02-15 Lukas Kluft * doc/_build: Ignore subdirectory plot_directive. * doc/cm.rst: Included colormap gallery and example plots. * doc/conf.py: Load matplotlib extension for documentation. * doc/pyplots: Scripts and data to create example plots. * doc/pyplots/_data, doc/pyplots/_data/test_data.nc: Directory to store data for example plots. Currently containing a netCDF4 file with some atmospheric variables. * doc/pyplots/cm_gallery.py, doc/pyplots/plot_density.py, doc/pyplots/plot_phase.py, doc/pyplots/plot_qualitative1.py, doc/pyplots/plot_qualitative2.py, doc/pyplots/plot_speed.py, doc/pyplots/plot_temperature.py: Scripts to create plots for the example gallery. 2016-02-13 Lukas Kluft * typhon/cm/__init__.py (mpl_colors): Added default values for parameters. If no parameter is given, the function will return 10 RGB color specifications for the default colormap. 2016-02-13 Lukas Kluft * doc/cm.rst: Fixed documentation for cm module. * typhon/cm/__init__.py: Added function mpl_colors which returns a given number of RGB tuples from a colormap. Included new colormap definitions from _cm.py. * typhon/cm/_cm.py: Colormap definitions. Currently containing ported versions of two ColorBrewer palettes. 2016-02-11 Lukas Kluft * typhon/cm/__init__.py: Colormaps can now be generated through dictionaries containing red, blue and green entries (see matplotlib's LinearSegmentedColormap). 2016-02-10 Oliver Lemke * typhon/cm/__init__.py: Register colormaps with mpl. Use LinearSegmentedColormap to make lut argument in mpl.get_cmap work. 2016-02-09 Lukas Kluft * doc/cm.rst: Documentation file for the cm package. * doc/modules.rst: Included the cm package. * typhon/__init__.py: Import new package cm. * typhon/cm: Package to provide matplotlib colormaps. * typhon/cm/__init__.py: The init file is used to collect the colormap data from all data files stored in typhon/cm. It creates and registers the colormaps. * typhon/cm/_cmocean.py: Ported colormaps from the cmocean project. 2016-02-08 Lukas Kluft * /typhon/arts/griddedfield.py: Added classmethod from_nc. This function extracts a given variable from a netCDF file and stores it alongside its grids to a GriddedField object. Added function to_dict which converts a GriddedField into a Python dictionary. * typhon/arts/tests/test_griddedfield.py: Added test to check the conversion into a dictionary. 2016-02-04 Oliver Lemke * typhon/legacy/, doc/legacy.rst, doc/arts.rst, doc/modules.rst, doc/xml.rst: Remove legacy module. 2016-02-03 Oliver Lemke * typhon/__init__.py: Increased version to 0.2.2 after upload to PyPi. 2016-02-02 Lukas Kluft * ./: Ignore tags file in top level directory. * typhon/arts/{catalogues.py,griddedfield.py,retrieval.py,scattering.py}: The setters for all member variables now use the return_if_arts_type() function to perform proper type checks. * typhon/arts/tests/test_griddedfield.py: Fixed a broken test case. * typhon/arts/utils.py: Utility functions to interact with ARTS specific tasks. Currently containing get_arts_typename() and return_if_arts_type() which are mostly used to properly check data types when creating objects. * typhon/arts/xml/names.py: The mapping of basic types is extended with additional numpy integer and float types. * typhon/arts/xml/write.py (get_arts_typename): Moved to /typhon/arts/utils.py. 2016-02-02 Oliver Lemke * setup.py: Set include_package_data=True so test data files and scripts are not skipped on install. 2016-01-27 Oliver Lemke * typhon/__init__.py: Increase version after release. 2016-01-27 Oliver Lemke * typhon/__init__.py: 0.2 Release. 2016-01-27 Lukas Kluft * typhon/arts/xml/tests/load_arts_xml_data.py: Now working with ARTS_DATA_PATH variables containing several separated directories. Every directory stored in ARTS_DATA_PATH is searched for XML files recursively. 2016-01-26 Lukas Kluft * doc/utils.rst: Added missing file to documentation. * typhon/arts/catalogues.py: All classes support reading and writing of binary XML files. Implementation of new data types: LineMixingRecord, QuantumIdentifier, QuantumNumberRecord, QuantumNumbers. * typhon/arts/types.py: Included new implemented types to list. * typhon/arts/xml/tests/reference/arrayofindex-bin.xml{,.bin}, typhon/arts/xml/tests/reference/vector-bin.xml{,.bin}: Reference files to check reading of binary files. * typhon/arts/xml/tests/test_matpack_types.py: Implemented tests to check reading and writing of binary ARTS XML files. * typhon/arts/xml/write.py (ARTSXMLWriter.close_tag): Add optional argument newline. Used for cases where an closing XML-tag shouldn't be followed by a newline character (e.g. QuatnumNumbers). 2016-01-26 Oliver Lemke * typhon/arts/xml/read.py (ARTSTypesLoadMultiplexer): Cleanup implementation. Remove unnecessary argument binaryfp from all member functions. Instead, use ARTSElement.binaryfp directly. 2016-01-26 Oliver Lemke * typhon/arts/catalogues.py, typhon/arts/retrieval.py, typhon/arts/scattering.py, typhon/arts/sensor.py: Convert files from DOS line endings to proper Unix format. 2016-01-26 Oliver Lemke * typhon/arts/xml/write.py (ARTSXMLWriter.write_xml): Add optional argument arraytype. Used for rare cases where an array can be empty and thus the type can not be derived from the elements automatically. * typhon/arts/catalogues.py (GasAbsLookup): Use explicit Array type Index for NonlinearSpecies. * KNOWN_ISSUES: Remove empty array issue. 2016-01-25 Oliver Lemke * typhon/arts/xml/__init__.py (save), typhon/arts/xml/write.py (ARTSXMLWriter): Add support for writing ARTS binary files. * KNOWN_ISSUES: Added note that currently empty arrays can't be written. 2016-01-25 Oliver Lemke * Typhon now supports reading binary ARTS XML files. (Sparse and SpeciesAuxData pending). * typhon/arts/xml/__init__.py: Open and pass binary file pointer to parse function if necessary. * typhon/arts/xml/read.py: (ARTSTypesLoadMultiplexer): Add keyword binaryfp. Implement reading from binary file where applicable. (ARTSElement): Add binaryfp attribute and pass it to ARTSTypesLoadMultiplexer. (parse): Create local copy of class ARTSElement and set binaryfp. 2016-01-21 Lukas Kluft * doc/{modules.rst,utils.rst}: Included utils to documentation. * typhon/utils/latex.py: It is now possible to pass headings for table columns. Fixed multi-line example in docstring. 2016-01-15 Oliver Lemke * typhon/__init__.py: With 0.1.0 out the door, moving on to 0.1.1. 2016-01-15 Oliver Lemke * typhon/__init__.py: Increase version to 0.1.0. 2016-01-14 Lukas Kluft * typhon/arts/retrieval.py: fixed typecheck for grids in RetrievalQuantity. 2016-01-14 Lukas Kluft * doc/{arts.rst,modules.rst,xml.rst}: Included new modules and packages to Sphinx index. Also made the usage of different heading styles consistent. * typhon/__init__.py: Included utils to __all__. * typhon/arts/catalogues.py: Implementation of data types related to catalogues. Currently containing ArrayOfLineRecord, CIARecord, SpeciesAuxData, GasAbsLookup, SpeciesTag and Sparse. * typhon/arts/griddedfield.py: Small fixes: GriddedField names are now read and stored. It is now possibl to clear member variables. Improvement of typechecks. * typhon/arts/retrieval.py: Implementation of RetrievalQuantity class. * typhon/arts/scattering.py: Implementation of scattering related data types such as SingleScatteringData and ScatteringMetaData. * typhon/arts/sensor.py: Reformatted function docstrings to handle two return values in a cleaner way. * typhon/arts/types.py: included new data types. * typhon/arts/xml/read.py: Removed SpeciesTag from ARTSTypesLoadMultiplexer as it is now an independent class. * typhon/arts/xml/tests/load_arts_xml_data.py: Included zipped XML files to test run. * typhon/arts/xml/tests/reference/arrayofvector.xml: Added reference file. * typhon/arts/xml/tests/test_matpack_types.py: Added test for ArrayOfVector. * typhon/arts/xml/write.py: Fixed the type attribute when writing Arrays ("ArrayOf"-suffix). * typhon/utils, typhon/utils/__init.py: New package to provide additional utilities. * typhon/utils/latex.py: Module for LaTeX interaction. Currently containing texify_matrix. 2016-01-07 Lukas Kluft * typhon/arts/griddedfield.py: Renamed variables to be consistent through with other modules. Small improvements for checks in setter functions. * typhon/arts/scattering.py: Ported SingleScatteringData and ScatteringMetaData classes from PyARTS. * typhon/arts/sensor.py: Module to provide classes and functions that are related to sensor settings in general. Currently containing two functions to compute backend channel frequencies and bandwidths. * typhon/arts/tests/reference/GriddedField3.xml: Reference file used for testing the GriddedField reading function. * typhon/arts/tests/test_griddedfield.py: Added functions two TestGriddedFieldLoad and TestGriddedFieldWrite classes. Those functions test the basic read/write functionality of the different GriddedField subclasses. The behaviour of GriddedField3 is checked against a reference file. * typhon/arts/types.py: Added SingleScatteringData and ScatteringMetaData to the list of classes. * typhon/arts/xml/read.py: Whitespaces aroung Strings are now stripped after reading. Comment tags are skipped while reading. * typhon/arts/xml/write.py (get_arts_typename): Use object name as default but check if an ARTS specific name is defined in basic_types. 2015-11-25 Oliver Lemke * typhon/arts/tests/test_griddedfield.py: Back were it belongs: Was accidentally moved into the xml directory with the other tests. * typhon/files/utils.py: Update example. * typhon/arts/xml/__init__.py: Update docstring. 2015-11-24 Oliver Lemke * typhon/arts/xml/__init__.py, typhon/arts/xml/write.py: (ARTSXMLWriter) Refactor write_* routines into a class. Use properties to track filepointer, precision and binary filepointer. Creates cleaner interface for the individual write_* methods. Removed ARTSTag class. Functionality is now provided by ARTSXMLWriter. * typhon/arts/griddedfield.py (GriddedField.write_xml): Replace fp, precision and binaryfp argument with an ARTSXMLWriter. Removed dependency on ARTSTag and xml.write_xml. * typhon/arts/xml/__init__.py (save): Use ARTSXMLWriter. 2015-11-24 Oliver Lemke * typhon/arts/xml/read.py (ARTSTypesLoadMultiplexer): Fix reading of zero-sized matpack types. * typhon/arts/xml/write.py (write_ndarray): Fix writing of zero-sized matpack types. * typhon/arts/xml/tests/test_matpack_types.py: Add tests for reading/writing empty matpack variables. 2015-11-24 Oliver Lemke * doc/arts.rst: Add GriddedField docs. Add additional subsection level. Divide docs in user and developer sections. Needs to be split into separate pages when more content is added. * doc/modules.rst: Show up to level 3 in toc. * typhon/arts/griddedfield.py: Add GriddedField to __all__ for documentation purposes. Test internal Sphinx references with :class:`CLASSNAME`. * typhon/arts/xml/read.py: Remove _ from _ARTSTypesLoadMultiplexer and _ARTSElement. * typhon/arts/xml/write.py: Add more docstrings. 2015-11-24 Oliver Lemke * typhon/arts/xml/__init__.py, typhon/arts/xml/names.py, typhon/arts/xml/read.py, typhon/arts/xml/write.py: Turn arts.xml from a package into a module. Split reading and writing routines into different packages to break circular dependency. * typhon/arts/xml/tests: Moved xml test cases into module directory. * typhon/arts/types.py: Uncomment GriddedFields. * typhon/arts/griddedfield.py (from_xml, write_xml): Add preliminary read/write routines. 2015-11-23 Lukas Kluft * typhon/arts/griddedfield.py: Provide a GriddedField class to match the behaviour of the equally named ARTS type. Technically every dimension is possible but there are pre-defined subclasses for the GriddedFields used in ARTS (dimension 1 to 7). * typhon/arts/tests/test_griddedfield.py: Test the usage of the GriddedField class. * typhon/arts/tests/load_arts_xml_data: Special test case that tries to load every XML file found in ARTS_DATA_PATH. 2015-11-23 Oliver Lemke * typhon/arts/xml.py (write_xml, write_basic_type, write_ndarray): Add attr parameter to pass optional XML tag attributes. 2015-11-19 Oliver Lemke * typhon/arts/xml.py (ARTSElement.value): Preparation for generic loading of non-basic types Call classmethod 'from_xml' of custom classes to create an instance from an xml element. (write_as_arts_xml): Renamed to _write_xml. Rename _arts_types to _basic_types. * typhon/arts/types.py: Added skeleton. * typhon/arts/tests/test_matpack_types.py (test_save_tensor): Shorten docstring. It was cut off in nosetest output. 2015-11-18 Lukas Kluft * typhon/arts/tests/test_matpack_types.py: Added functions to test the writing of XML files. Divided the test functions into two classes TestLoad and TestSave. _create_tensor is now a module level function as it is used by all classes. 2015-11-18 Oliver Lemke * typhon/arts/xml.py (write_ndarray): We have 7 Tensors not just 6... 2015-11-18 Oliver Lemke * typhon/arts/xml.py (write_ndarray): Fixed writing of Vectors. 2015-11-17 Oliver Lemke * DESCRIPTION.rst: Mention that this package is for Python 3. * typhon/arts/xml.py: Strings in ARTS XML files must be enclosed in double quotes. Replaced double quotes with single quotes around strings in Python source code for consistency. Rename etree to ElementTree for clarity. * typhon/arts/tests/reference/arrayofstring.xml: Updated. 2015-11-17 Oliver Lemke * typhon/arts/xml.py: Add writing support for all basic and matpack types. Add support for reading gzipped xml files. * typhon/arts/tests/reference/array.xml: Renamed to vector. * typhon/arts/tests/test_matpack_types.py: Renamed array to vector. Added tests for loading ArrayOf{Index,String}. * setup.py: Add Python 3.5 to supported languages. 2015-11-11 Oliver Lemke * Uploaded version 0.0.4 to pypi. * typhon/__init__.py: Increased version number after pypi upload. 2015-11-10 Robin Ekelund * typhon/legacy/arts_types.py: Added functions 'assp2backcoef', 'assp2g' and 'checkassp' to the SingleScatteringData class. The functions calculates backscattering, assymmetry coefficient and performs a self-check respectively. 2015-11-06 Gerrit Holl * typhon/files/utils.py(decompress): - Add lzma support if available. 2015-11-03 Lukas Kluft * typhon/__init__.py (test): Fix bug that broke function if invoked in other directories than typhon/. The needed path is now determined using the __file__ variable. 2015-11-03 Lukas Kluft * typhon/arts/tests/reference: Added directory which includes several test XML files. * typhon/arts/tests/test_matpack_types.py: Added module which provides basic test functions for reading XML files. * typhon/__init__.py: Added test() to run all tests. 2015-11-02 Oliver Lemke * setup.py: Remove Python 2.7 from language list. * typhon/arts/xml.py: Add _ to ARTSTypesLoadMultiplexer and ARTSElement because they're only used internally. Make all methods in ARTSTypesLoadMultiplexer static. Removes the need of unnecessarily instantiating an object. * DESCRIPTION.rst: Updated. * .gitignore: Updated. 2015-10-29 Oliver Lemke * typhon/legacy/arts_types.py: Add support for both SingleScatteringData versions. 2015-10-22 Oliver Lemke * doc/arts.rst, doc/modules.rst, typhon/__init__.py, typhon/arts/__init__.py, typhon/arts/xml.py: Started new xml implementation. Loosely based on the implementation in pyatmlab. Thanks Gerrit. 2015-10-22 Oliver Lemke * typhon/__init__.py, typhon/files/__init__.py, doc/files.rst, doc/modules.rst: Add 'files' module. * typhon/files/utils.py: Add convenience function 'decompress' for temporary unpacking of compressed files. * doc/developer.rst: Add section about default module short names. * doc/conf.py: Fix module sorting by using 'typhon.' as a common prefix. * .gitignore: Ignore file for git-svn users. 2015-10-20 Oliver Lemke * doc/index.rst: Fix headings/title. 2015-10-20 Oliver Lemke * doc/developer.rst, doc/example_google.py, doc/index.rst, doc/modules.rst: Added docs on coding and docstring styles. Restructure the toctree. 2015-10-19 Oliver Lemke * Docs are now available at http://typhon.readthedocs.org/ * typhon/legacy/arts_types.py: Remove no longer existing data types from documentation. 2015-10-19 Oliver Lemke * setup.py: Fix syntax error. Add numpy and scipy as requirements. 2015-10-19 Oliver Lemke * doc/legacy.rst: Add docs for legacy module. * doc/index.rst: Add link to legacy module docs. * doc/conf.py: Load napoleon extension for numpy doc format. * typhon/legacy/arts_types.py: Fix some docstrings to avoid sphinx errors. 2015-10-19 Oliver Lemke * typhon/__init__.py: Define version number here. Set to 0.0.4. Do not increase version number on commit! It will only be increased after a release has been upload to pypi. * setup.py, doc/conf.py: Use __version__ from init file. * doc/conf.py: Use RTD theme. 2015-10-16 Oliver Lemke * setup.py: Change version to 0.0.3 and upload to pypi. * MANIFEST.in: Add to include extra files in sdist. 2015-10-16 Oliver Lemke * typhon/legacy/__init__.py, typhon/legacy/artsXML.py, typhon/legacy/arts_math.py, typhon/legacy/arts_types.py: Added legacy module with stripped down versions of the old PyARTS XML routines. These will be removed once new xml reading/writing routines are in place. * setup.py: Added python 3.3 to supported versions. * doc/_build: Ignore doctrees and html dirs. 2015-10-05 Oliver Lemke * ChangeLog: You are here. * DESCRIPTION.rst, setup.py, setup.cfg, typhon/__init__.py: Add basic project files. * doc/Makefile, doc/_build, doc/_static, doc/_templates, doc/conf.py, doc/index.rst, doc/make.bat: Add sphinx documentation setup.