Two bug fixes; new functions; minor, backward-compatible API changes; additional tests
- fit.py
- Adds call to 'utilities.check_uv' in fit runner
- test.py
- Adds tests for utilities objects and for radial_fitters.FrankFitter.log_evidence_laplace
- utilities.py
- Adds function check_uv
- Adds option in get_fit_stat_uncer to return log uncertainty for LogNormal model
- Adds option in make_mock_data to reproject
- Fixes bug in normalize_uv
- Fixes two bugs in sweep_profile
- setup.cfg
- Excludes scipy versions with known bug for scipy.optimize.nnls
- Updates supported Python versions
- Docs:
- Minor updates to tutorials using utilities.make_mock_data
One bug fix, some code refactoring, a couple new functionalities, integrates scale-height fits into command-line UI
- default_parameters.json, parameter_descriptions.json:
- Adds parameters: 'convergence_failure', 'I_scale', 'save_figures', 'scale_height'
- filter.py
- Breaks 'spectral_smoothing_matrix' out of 'CriticalFilter'; some restructuring of 'covariance_MAP' and 'log_prior'
- fit.py
- Adds 'get_scale_height' function
- hankel.py
- Adds 'interpolation_coefficients' and 'interpolate' functions
- io.py
- Fixed a bug that was saving incorrect uncertainty for LogNormal brightness profile
- make_figs.py
- Adds non-negative fit to figures
- radial_fitters.py
- Adds 'convergence_failure' arg to FrankFitter
- Adds 'log_evidence_laplace' function to FrankFitter
- statistical_models.py
- Adds 'DHT_coefficients' and 'interpolate' functions to 'VisibilityMapping'
- test.py
- Adds tests for non-negative solver ('test_solve_non_negative') and solution object IO ('test_save_load_sol')
- utilities.py
- Adds 'get_fit_stat_uncer' function
Fixed a bug that caused non-python files to not be installed through pip
Introduction of log-normal fits, large amount of code refactoring to support both 'Gaussian' and 'LogNormal' methods
- default_parameters.json, parameter_descriptions.json:
- Adds parameters: 'rescale_flux', 'method'
- debris_fitters.py
- Adds support for fitting optically thin but geometrically thick disks with a known Gaussian scale height.
- filter.py:
- New module that now hosts the routine for optimizing for power spectrum priors, 'CriticalFilter'
- fit.py:
- Adds ability to run either a standard or log-normal fit
- geometry.py:
- Adds routine to rescale the total flux according to the source geometry, 'rescale_total_flux'
- Adds 'rescale_factor' property to 'SourceGeometry'
- Adds the option to keep all three Fourier components (u,v,w) when deprojecting
- minimizer.py:
- New module that hosts routines for solving non-linear minimization problems: 'BaseLineSearch', 'LineSearch', 'MinimizeNewton'
- radial_fitters.py:
- Code refactoring:
- Removes '_HankelRegressor' class
- Adds 'FrankGaussianFit' and 'FrankLogNormalFit' classes
- Adds 'FrankRadialFit' class
- Moves some core functionalities to 'frank.filter' and 'frank.statistical_models'
- Adds 'MAP', 'I', 'info' properties, and 'assume_optically_thick' parameter, to 'FrankRadialFit'
- statistical_models.py:
- New module that now hosts 'GaussianModel' class (containing much of the functionality of the now deprecated '_HankelRegressor'), and adds analogous 'LogNormalMAPModel' class
- Adds a VisibilityMapping that abstracts the mapping between the brightness profile and visibilities. Handles optically thick (default), optically thin, and debris disk models.
- tests.py:
- Adds test for a log-normal fit
- Docs:
- Updates API
- Miscellaneous:
- Minor bug and typo fixes
A number of bug fixes, some increased flexibility in fits from terminal and figure generation, several new optional fit parameters
- default_parameters.json, parameter_descriptions.json:
- Adds additional parameters: 'asinh_a', 'fit_inc_pa', 'gamma', 'norm_residuals', 'norm_wle', 'plot_in_logx', 'stretch', 'use_median_weight'
- fit.py:
- Fixes bug in which 'norm_wle' parameter was not checked
- geometry.py:
- Fixes bug in 'deproject' that was redefining global variable 'u'
- Fixes unit conversion bug in 'FitGeometryGaussian' when inc and/or PA are user-provided, fixes 'guess' bug in '__init__'
- Adds option to only fit for dRA and dDec
- io.py:
- Adds more careful checks of UVtable format
- make_figs.py:
- Fixes a few plot generation bugs in figures
- Adds some more flexibility to figure generation, including arcsinh colorscale for 2D image
- tests.py:
- Adds a few tests
- utilities.py:
- Fixes bug in 'convolve_profile'
- Fixes bug in 'estimate_weights', adds optional 'q' argument
- Updates 'sweep_profile' to optionally return reprojected 2D image, adds optional 'dr' argument
- Updates 'UVDataBinner' to optionally only intake real component of visibilities
- Adds a couple logging messages
- Docs:
- Updates jupyter notebooks and figures to be consistent with current code version
- Updates paper links to point to ADS
- Adds changelog ('HISTORY.rst')
- Adds video tutorial
- Adds more verbose descriptions in some parts of docs
- Miscellaneous:
- Fixes 'MaskedArray' warnings in 'utilities.py', 'plot.py'
- Fixes a few other minor bugs
Initial production/stable release as used in Jennings et al. 2020
- default_parameters.json, parameter_descriptions.json:
- Adds 'initial_guess' parameter for geometry fitting routines
- geometry.py:
- Adds nonparametric geometry fitting routine
- Adds routine to clip inclination and PA to expected range
- tests.py:
- Adds several tests
- Docs:
- Adds hyperlinks, badges to README
- Adds code coverage
- Miscellaneous:
- Fixes a few other minor bugs
Initial release of frank codebase for submission to MNRAS
- In progress: geometry fitting routines, README, docs