Changelog¶
- TODO:
- implement a dedicated contour function, to avoid relying on an undocumented function from matplotlib (e.g. _cntr.Cntr).
- v0.8.4 June 2017, F.P.A. Vogt:
- finalized proper module packaging, ready for pypi upload
- adding the M_version variable to select the latest MV models, or the legacy MIV ones.
- changing the pyqz_metadata import to allow the above to work fine
- replaced all “sys.exit” with “raise Exception”
- removed the modification of the rcParams values in favor of plt.style.use()
- updated docs
- v0.8.3 May 2017, F.P.A. Vogt:
- updating code for compatibility with scipy 0.19.0, numpy 1.11.3
- v0.8.2 August 2016, F.P.A. Vogt:
- fixed typo inside plot_global_qz (kappa value always set to infty).
- v0.8.1 June 2016, F.P.A. Vogt
- fixed omission of “if verbose:”.
- added new logo to website.
- added disclaimer about current “safe range” of the MAPPINGS models shipped with pyqz
- v0.8.0 May 2016, F.P.A. Vogt
- changed directory structure of the code.
- updated the plotting to use Latex (usetex=True).
- refactored header of files.
- separated all plotting into a dedicated module: pyqz_plot
- beefed-up the pickle file generated by get_global_qz(), and created a dedicated plotting function pyqz_plots.plot_global_qz() to generate all the associated diagram.
- Removed the requirement for a non-interactive backend … hurray !
- implemented the calculation of the KDE contours via matplotlib._cntr.Cntr(), the core function inside the pyplot.contour() routine. _cntr.Cntr() is not documented … I should write my own at some point, to avoid surprises upon new matplotlib releases.
- Tweaked the look of the Figures generated by the pyqz_plots routines.
- updated doc accordingly, refactored the “function” section, changed the docstring layout for all functions.
- v0.7.3 April 2016, F.P.A. Vogt
- fixed missing numpy as np import in notebooks (reported by F. Selman).
- replaced skiprows with skip_header in np.genfromtxt calls (reported by F. Selman).
- added reference to Dopita+ 2016 for the 3-D line ratio diagram in the doc.
- migrated the doc’s theme from “classic” to “Read the Docs”.
- fixed plotting bug in
interp_qz
for bad points in 3D diagrams (reported by F. Selman).
- v0.7.2 December 2015 - January 2016, F.P.A. Vogt
- updated documentation with IPython notebook (static HTML in doc + notebook in
pyqz/examples/
). - added
run_awk_loop
function to rapidly create the basic grids for pyqz. This is not intended as a main pyqz feature, but rather as an internal tool to make my life easier. It basically runs the MAPPINGS awk sripts in a loop to avoid many (error prone) manual modifications of the rungrid.sh file. Requires MAPPINGS to be installed properly, as well as the awk scripts - neither provided withinpyqz
itself. - used
os.path.join()
for proper handling across different OS. - created a test environment for
pyqz
using the The Python unit testing framework (unittest
) insidepyqz/self_checks/
. - added test functions for node points and bad points.
- fixed typo in
coeffs
for'[NII]/Ha;[OIII]/[OII]+'
. - added
verbose
keyword - added test function for MV models with mid-Qs.
- started implementing multiprocessing (send different spectra to different cpus). This requires a non-interactive backend for matplotlib !!!
- created a separate pyqz_tools.py file for clearing up a bit the content of pyqz.py
- Finished implementing multiprocessing. Sends different spectrum to different CPUs - gets useful with many data points at once (e.g. IFU field). Does NOT work in Canopy environment. Speed gain prop. to numbher of cpus used (in principle).
- Speed up get_global_qz ~25times for 1 spectra and 1 diagram, by restricting the reconstructed PDF area to where we have QZ estimates - anywhere else, it’ll be close from zero - we already know that, no need to send time calculating it !
- Fixed bugs when the spectrum is so bad it lands on no grid. Added specific unittest example for this scenario as well.
- Changed the doc color scheme
- Updated doc, added dedicated “Parameters” page.
- Forced mpl backend to be ‘agg’ by default …
- updated documentation with IPython notebook (static HTML in doc + notebook in
- v0.7.1 November 2015, F.P.A. Vogt
- created “get_MVphotogrid_fn” to construct the filename of the MAPPINGS grids once only (for more portability in future updates).
- added safety check for the diagnostic grids given by the user in “get_global_qz”
- updated MAPPINGS models to latest version
- adjusted the resampling function for more consistency with the “resampling factor”
- updated FAQ with point about the “paired” colormap, to avoid the wrath of the internet …
- improved the looping of the grid inside
interp_qz
(by checking the presence of data point inside each panel prior to the interpolation) to speed up the process - implemented the automatic reshaping of arrays to a 1xN array inside
interp_qz
(and reshaping to the original shape prior to returning the results) - updated the “plot regions” assigned to each diagnostic grid for the latest MAPPINGS grids (no scientific meaning - just to get pretty plots)
- fixed minor typo in
get_global_qz_ff
: flag is now written as an integer to the file - added the
KDE_QZ_sampling
andKDE_do_singles
keywords toget_global_qz
for easier access - moved
QZs_lim
andPDF_cont_level
topyqz_metadata.py
for easy access - re-instated the ability to calculate the individual KDE alongside the global one
- created custom colormap for the KDE plot
- added ability to save all the reconstucted PDFs (individuals AND global) to a pickle file via the
KDE_save_PDF
keyword - fixed bugs when
srs = 0
or all errors are 0: the code now doesn’t compute any KDEs in those cases, and issues the flag -1 - fixed minor “aesthetic” sign issue with axes labelling
- v0.7.0 August 2015, F.P.A. Vogt
- added the function
refine_MVphotogrid
, which uses Akima splines (in 1-D) to resample a given MAPPINGS grid. - updated code to allow the use of resampled MAPPINGS grid (or not)
- updated plots to differentiate between “genuine” MAPPINGS points and resampled nodes
- added the function
- v0.6.3 July-August 2015, F.P.A. Vogt
- updated input files to MAPPINGS V files (csv created by Awk scripts, incl.
Pk
,kappa
,sph/pp
, …) - added functions to check grids
- started added proper warnings.warn and sys.exit(‘error message’)
- implemented new MAPPINGS V terminology for line ratios
- fixed several minor/less minor bugs
- added auto-detection of wraps (not bullet-proof, but sufficient for the task at hand)
- removed pre-defined “valid” grid regions in favor of auto-detection of the good regions
- added flag (‘9’) for when multiple KDE peak (best value) exist
- Note:
- flag 1 => (‘direct’ mean -‘KDE’ mean)/ std ‘direct’ mean <= flag_level, for qz[0]
- flag 2 => (‘direct’ mean - ‘KDE’ mean)/ std ‘KDE’ mean <= flag_level, for qz[0]
- flag 3 => (‘direct’ mean -‘KDE’ mean)/ std ‘direct’ mean <= flag_level, for qz[1]
- flag 4 => (‘direct’ mean - ‘KDE’ mean)/ std ‘KDE’ mean <= flag_level, for qz[1]
- flag 8 => the data lands outside of ALL the grids
- flag 9 => multiple peak to the KDE map exist. Defaulted to highest peak.
- updated diagrams design
- started implementing 3-D diagnostics diagrams
- added
get_global_qz_ff
, to feed the data in via CSV files - moved project to Github, consolidated the Sphinx Documentation as Github pages.
- updated input files to MAPPINGS V files (csv created by Awk scripts, incl.
- v0.6.2 December 2014, F.P.A. Vogt
- removed the need for the global PYQZ_DIR variable
- v0.6.1 December 2014, F.P.A. Vogt
- added number of srs points outside the grid (i.e. how reliable the final estimate is)
- generate random point via truncated normal function to avoid creating negative fluxes
- implemented upper limits (marked with flux errors = -1)
- added decent documentation using the
Sphinx
module
- v0.6.0 November 2014, F. Vogt
- added proper support of the observational errors on the line fluxes. Done via propagation of probability density function and KDE reconstruction. KDE can be done via either the
scipy
package (fast) or thestatsmodels
package (very slow) but more accurate for multi-modal distributions. - updated saveplot/savefig commands in
get_qz_ff
for more freedom - added flag to output file when simple mean and advanced ‘KDE’ mean disagree by n sigmas
- created new ‘KDE’ diagram of the q-z plane.
- fixed output file header to avoid ‘spaces’ in column names
- added proper support of the observational errors on the line fluxes. Done via propagation of probability density function and KDE reconstruction. KDE can be done via either the
- v0.5.0 November 2013, F.P.A. Vogt
- implemented a work around in
get_qz
, to ensure thatsavefig
works fine also with eps and pdf (note: the real issue is deep. In some cases (e.g. [NII]/[SII] vs [OIII]/Hb, k=50), the original code would save different images in eps/pdf or png ! It is linked tofacecolor='none'
in the path. Work-around:facecolor='w'
, andzorder=0
. get_qzff
can now handle files with only 1 spectrum properly- added
savefig/plot/plot_loc/save_fmt
keywords toget_qzff
for better control and ability to save figures - fixed a bug in
get_qzff
: the function can now handle ‘extra’ column containing numbers and/or text
- implemented a work around in
- v0.4.1, F. Vogt
- fixed a wrong plot label for the [NII] line
- v0.4, F. Vogt
- fixed several bugs related with 2D input arrays
- limited the number of bad points plotted to 1500
(for compatibility with
grid_x
andgrid_y
) - clarified the required input structure - must be numpy arrays (1D or 2D)
- plots are now prettier, and more robust (defined via local rcParams)
- added possibility to save plot via
savefig
keyword - improved axis labels in the plots to make them ‘publication-ready’ (if one wanted to)
- v0.3.3, F. Vogt
- now also displays the points landing outside the grid model with white triangles (only for the 1-D array input type)
- v0.3.2b, F. Vogt
- corrected bug related to integer line ratios (e.g. [0],[0])
- corrected bug related to the step checking if line ratios are on the MAPPINGS IV grid
- v0.3.2, June 2013, F. Vogt (following suggestions by D. Nicholls)
- added ‘smart’ plot limits (instead of fixed ones)
- increased grid and data point size
- added new keyword for choosing the plot window number (n_plot)
- added ‘if’ statement to close the plot if all values are NaNs (removed in v0.4)
- added plot title
- v0.3.1b, April 2013, F. Vogt
- fixed indentation of 4 lines in
get_qzff
- fixed indentation of 4 lines in
- v0.3.1 April 2013, F. Vogt
- added .csv output for the
get_qzff
(or txt, which ever you like best) - changed header column of output files (only ‘z’ is used for consistency)
- added .csv output for the
- v0.3.0 April 2013, F.P.A. Vogt
- added
get_qzff
function to directly work from a txt file - corrected
get_pyqz
for when points are ‘on’ the grid.
- added
- v0.2.0 April 2013, F.P.A. Vogt
- modified fitting method to be ‘slice-by-slice’ for smoother results
- added the get_grid function
- added different readable areas for different grids and kappas
- v0.1.0 Feb. 2013, F. Vogt
- created