issues
2 rows where comments = 9, state_reason = "completed" and user = 35968931 sorted by updated_at descending
This data as json, CSV (advanced)
Suggested facets: created_at (date), updated_at (date), closed_at (date)
id | node_id | number | title | user | state | locked | assignee | milestone | comments | created_at | updated_at ▲ | closed_at | author_association | active_lock_reason | draft | pull_request | body | reactions | performed_via_github_app | state_reason | repo | type |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
671609109 | MDU6SXNzdWU2NzE2MDkxMDk= | 4300 | General curve fitting method | TomNicholas 35968931 | closed | 0 | 9 | 2020-08-02T12:35:49Z | 2021-03-31T16:55:53Z | 2021-03-31T16:55:53Z | MEMBER | Xarray should have a general curve-fitting function as part of its main API. MotivationYesterday I wanted to fit a simple decaying exponential function to the data in a DataArray and realised there currently isn't an immediate way to do this in xarray. You have to either pull out the This is an incredibly common, domain-agnostic task, so although I don't think we should support various kinds of unusual optimisation procedures (which could always go in an extension package instead), I think a basic fitting method is within scope for the main library. There are SO questions asking how to achieve this. We already have Proposed syntaxI want something like this to work: ```python def exponential_decay(xdata, A=10, L=5): return A*np.exp(-xdata/L) returns a dataset containing the optimised values of each parameterfitted_params = da.fit(exponential_decay) fitted_line = exponential_decay(da.x, A=fitted_params['A'], L=fitted_params['L']) Compareda.plot(ax) fitted_line.plot(ax) ``` It would also be nice to be able to fit in multiple dimensions. That means both for example fitting a 2D function to 2D data: ```python def hat(xdata, ydata, h=2, r0=1): r = xdata2 + ydata2 return h*np.exp(-r/r0) fitted_params = da.fit(hat) fitted_hat = hat(da.x, da.y, h=fitted_params['h'], r0=fitted_params['r0']) ``` but also repeatedly fitting a 1D function to 2D data: ```python da now has a y dimension toofitted_params = da.fit(exponential_decay, fit_along=['x']) As fitted_params now has y-dependence, broadcasting means fitted_lines does toofitted_lines = exponential_decay(da.x, A=fitted_params.A, L=fitted_params.L)
So the method docstring would end up like ```python def fit(self, f, fit_along=None, skipna=None, full=False, cov=False): """ Fits the function f to the DataArray.
``` Questions1) Should it wrap
2) What form should we expect the curve-defining function to come in?
3) Is it okay to inspect parameters of the curve-defining function?
|
{ "url": "https://api.github.com/repos/pydata/xarray/issues/4300/reactions", "total_count": 4, "+1": 3, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 1 } |
completed | xarray 13221727 | issue | ||||||
349026158 | MDU6SXNzdWUzNDkwMjYxNTg= | 2355 | Animated plots - a suggestion for implementation | TomNicholas 35968931 | closed | 0 | 9 | 2018-08-09T08:23:17Z | 2020-08-16T08:07:12Z | 2020-08-16T08:07:12Z | MEMBER | It'd be awesome if one could animate the plots xarray creates using matplotlib just by specifying the dimension over which to animate the plot. This would allow for rapid visualisation of time-evolving data and could potentially be very powerful (imagine a grid of faceted 2d plots, all evolving together over time). I know that there are already some libraries which can create animated plots of xarray data (e.g. Holoviews), but I think that it's within xarray's scope (#2030) to add another dimension to its default matplotlib-style plotting capabilities. How? I saw this new package for making it easier to animate matplotlib plots using the funcanimation module: animatplot. It essentially works by wrapping matplotlib commands like ```python import animatplot as amp import matplotlib.pyplot as plt X, Y = load_data_somehow block = amp.blocks.Line(X, Y) anim = amp.Animation([block]) anim.save_gif("animated_line") plt.show() ``` which creates a basic gif like this: I think that it might be possible to integrate this kind of animation-plotting tool by adding an optional dimension argument to xarray's plotting methods, which if given causes the function to call the wrapped animatplot plotting command instead of the bare matplotlib one. It would then return the corresponding "block" ready to be animated. Using the resulting code might only require a few lines to create an impressive visualisation: ```python turb2d = xr.load_dataset("turbulent_fluid_data.nc") block = turb2d["density"].plot.imshow(animate_over='time') anim = Animation([block]) anim.save_gif("fluid_density.gif") plt.show() ``` What would need changing? If we take the I wanted to ask about this before delving into the code too much or submitting a pull request, in case there is some problem with the idea. What do you think? |
{ "url": "https://api.github.com/repos/pydata/xarray/issues/2355/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | xarray 13221727 | issue |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issues] ( [id] INTEGER PRIMARY KEY, [node_id] TEXT, [number] INTEGER, [title] TEXT, [user] INTEGER REFERENCES [users]([id]), [state] TEXT, [locked] INTEGER, [assignee] INTEGER REFERENCES [users]([id]), [milestone] INTEGER REFERENCES [milestones]([id]), [comments] INTEGER, [created_at] TEXT, [updated_at] TEXT, [closed_at] TEXT, [author_association] TEXT, [active_lock_reason] TEXT, [draft] INTEGER, [pull_request] TEXT, [body] TEXT, [reactions] TEXT, [performed_via_github_app] TEXT, [state_reason] TEXT, [repo] INTEGER REFERENCES [repos]([id]), [type] TEXT ); CREATE INDEX [idx_issues_repo] ON [issues] ([repo]); CREATE INDEX [idx_issues_milestone] ON [issues] ([milestone]); CREATE INDEX [idx_issues_assignee] ON [issues] ([assignee]); CREATE INDEX [idx_issues_user] ON [issues] ([user]);