forked from thomasdonlon/mwahpy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog.txt
162 lines (147 loc) · 7.83 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
v2.0.0 (LONG TERM SUPPORT RELEASE)
- can now search by ID in timestep.print_particle() with use_id=True keyword
- timestep.subset_rect() and timestep_subset_circ() now both have an inverse=True keyword,
which lets you cut everything inside the bounds instead of keeping everything inside bounds
- removed extra unecessary .update()s in timestep.subset_rect(), timestep.subset_circ(),
timestep.split(), timestep.split_at_id_wrap(), and recenter_each_component()
- added histogram reading capability in output_handler.read_histogram()
v1.4.8: (MINOR PATCH)
- fixed bug in computing vgsr and vr for simulated data
- corrected rotation matrix and typo in coords.eq_to_OC_koposov2019()
- added inverse coords.OC_to_eq_koposov2019()
- added @fix_arrays decorator to coords that makes it a lot easier to implement flexible
array & non-array inputs
- added some flexible array/non-array inputs to various coords functions
v1.4.7: (MINOR PATCH)
- made the goodness-of-fit in orbit_fitter an actual chi-squared
- fixed type mismatch in coords.pole_rotation_inv
- added timestep.get_bound_mass()
- added timestep.check_for_incest()
- edited github readme
- split_at_id_wrap works again for new Nbody formatting, added a toggle for user-inputted
values for backwards compatability
- added plot.scatter_multiple() to plot lists of timesteps (like those made by split_at_id_wrap)
- added a few paper&stream-specific transformations (gal_to_lambet_newberg2010(),
lambet_to_gal_newberg2010(), and eq_to_OC_koposov2019())
v1.4.6: (BUG FIX)
- the reverse orbit in orbit_fitter.get_OrbitData_from_orbit() was using the forwards
orbit to calculate vgsr. Fixed
- timestep.only_dark_matter() had a typo that made it identical to only_baryons(). Fixed
- did some refactoring of orbit_fitter to make it easier to read and more consistent with
things like changing the timestep and potential
v1.4.5: (MINOR PATCH)
- fixed bug where orbit fitter plots would use the mwahpy default potential even
if another was provided
- output_handler.read_output() now works for files with the <bodies> </bodies> tags format
- changed name of sky_to_pole() to pole_rotation(), because it was confusing.
sky_to_pole() is now an alias for pole_rotation() and causes a DeprecationWarning
- added pole_rotation_inv() function
- timestep.scatter() now has a 'cbar' keyword to turn on a colorbar & shade particles appropriately
- improved how .coords was checking types
- added eq_to_OC() transformation from ra/dec to Orphan-Chenab lambda/beta,
and OC_to_eq() inverse transformation
v1.4.4: (MINOR PATCH)
- orbit_fitter gradient descent now uses Nelder-Mead optimizer by default, BFGS
was terminating the optimization early
- fixed bug in calc_self_energies where KE was 2x as large as it should be
- added ability to change galaxy potential in orbit_fitter.py
v1.4.3: (BUG FIX)
- fixed some typos that would prevent the package from initializing correctly
- fixed plot.hist()
- fixed print_particle()
- calc_rvpm() was adding an additional unnecessary (unsupported) key to the
timestep object
- made timestep.recenter() and timestep.update() more verbose
- warnings are now printed, not raised as errors
- typos in plot.fancy_plot()
- fixed incorrect sizing of plot.fancy_plot()
v1.4.2: (MINOR PATCH)
- Now using python's built-in Warning class instead of manually checking flags
and printing warning statements
- orbit_fitter and orbit_fitter_gc now have two modes: 'de' (differential evolution)
and 'gd' (gradient descent). Mode 'de' requires bounds, and mode 'gd' requires
an initial guess. These are selected with the 'mode' keyword in
orbit_fitter.fit_orbit() and orbit_fitter_gc.fit_orbit().
- the phase space coordinates of the Sun are now a PhaseSpace class, which can be
updated throughout the package with mwahpy_glob.solar_ps.update(<[x, y, z, vx, vy, vz]>).
To access the x velocity of the phase space coordinate, for example, you now use
mwahpy_glob.solar_ps.vx.
v1.4.1:
MAJOR CHANGES:
- now require python v3.6.0 or above due to installation problems with older
versions of python.
- fixed bug in orbit_fitter and orbit_fitter_gc where using numpy arrays for
velocity data would not properly set flags, but lists would crash the program
- progress bars do not show up in jupyter notebooks now, to prevent lagging out
the client
- global flags are now instances of the Flag class (located in flags.py), which
can be switched on or off globally with "myflag.switch(<bool>)". They can still
be treated with default boolean comparisons, e.g. "if myflag:".
MINOR CHANGES:
- phase space of the Sun is now a constant in mwahpy_glob and should be accessed
from there instead of hard-coded
- added fancy_plot() in .plot, can call as timestep.fancy_plot(<...>)
- changed coords.rv_to_vgsr() to coords.vlos_to_vgsr() (trying to avoid overloading
"radial velocity")
- added coords.vgsr_to_vlos()
- didn't need to be importing or utilizing sys
BUG FIXES:
- fixed divide-by-zero error in timestep.get_self_energies()
- fixed bug in coords.rot_around_arb_axis() that was slowing it down slightly
- fixed bug in output_handler.read_output() where the progress bar would not
go from 0 to 100% if the 'stop' keyword was used
- coords.remove_sol_mot_from_pm() no longer modifies the pmra and pmdec input
arrays in place
v1.4.0:
- renamed orbit_fitting and orbit_fitting_gc to orbit_fitter and orbit_fitter_gc
- refactored and fixed orbit_fitter
- added documentation for orbit_fitter and orbit_fitter_gc
- added documentation for changes since v1.3.5
- functions that were re-used between orbit_fitter and orbit_fitter_gc are now
all located in orbit_fitter
- it's not really a chi-squared, so now it's just a goodness-of-fit in the orbit
fitting packages
v1.3.8:
- refactored and fixed orbit_fitting_gc
- better way to do coords.cart_to_plane()
- added coords.cart_to_lonlat()
- coords.gal_to_lambet() and coords.cart_to_lambet() now use coords.cart_to_lonlat()
in the background as abstraction
- added coords.gal_to_lambet_galcentric(), will probably be deprecated soon in
order to clarify coordinate systems
v1.3.7:
- Fixed sign of Ly
- added start and stop keywords to output_handler.read_output()
v1.3.6:
- fixed sky_to_pole() tests and a couple other tests
- fixed a bug with output_handler.make_nbody_input() not writing '\n' at end of file
v1.3.5:
- sky_to_pole() now uses a change of basis matrix instead of vector math
- fixed bugs with mismatches of Timestep.index_list after extra calculations
- Timestep.id is now an array of ints, not floats
- added Timestep.take_by_id()
- output_handler.make_nbody_input() now properly handles the 'recenter' keyword argument
- output_handler.make_nbody_input() pads now floats correctly
- updated README
- Timestep.typ is now a list of ints, not floats
v1.3.4:
- Timestep.typ attribute stores whether particles are baryons (0) or dark matter (1)
- output_handler has been updated to also read in particle type
- Timestep.only_baryons() and Timestep_only_dark_matter() cut the data to only
include one type of particle
- Added support for galactic spherical coordinates (phi, theta)
- Added find_progenitor()
- make_nbody_input() no longer recenters the Timestep before printing out
- fixed 'self not defined' error in output_handler.make_csv()
- Timestep.rad and Timestep.rot are now Timestep.vrad and Timestep.vrot
- updated documentation pdf to new naming convention
- updated documentation to include all supported functions
- updated README
- removed coords.approx_lsr()
v1.3.3:
- added changelog
- fixed bug in Timestep.copy() that would cause error if the Timestep had calculated values
- adapted python standard naming convention (mostly, method names went from camelCase to lower_case)
- consolidated coords.py tests into tests.py
- bug fix in coords.cart_to_plane()
- fixed import scheme