-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Writer api #596
base: develop
Are you sure you want to change the base?
Writer api #596
Conversation
- Fix encoding - Add annotations
…nto feature/writer-api
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #596 +/- ##
===========================================
- Coverage 90.28% 90.02% -0.27%
===========================================
Files 153 156 +3
Lines 11565 11957 +392
Branches 546 583 +37
===========================================
+ Hits 10442 10764 +322
- Misses 953 1013 +60
- Partials 170 180 +10 ☔ View full report in Codecov by Sentry. |
|
||
def to_file(self, f): | ||
if hasattr(self.ds, "earthkit"): | ||
f.write(self.ds.earthkit.to_netcdf(None)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Calling to_netcdf without a path restricts the data format to NetCDF3, btw:
If no path is provided, this function returns the resulting netCDF file as bytes; in this case, we need to use scipy, which does not support netCDF version 4 (the default format becomes NETCDF3_64BIT).
https://docs.xarray.dev/en/stable/generated/xarray.Dataset.to_netcdf.html
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@chpolste, thanks for pointing this out. Do you know if there is a way to generate netCDF version 4 as bytes from xarray?
This PR
Adds a new writer API:
https://earthkit-data--596.org.readthedocs.build/en/596/guide/targets.html
https://earthkit-data--596.org.readthedocs.build/en/596/guide/encoders.html
Deprecates:
Removes:
Some counter-intuitive features
When we call
to_target()
it does the following:This has implications in the "file" target. Currently, when we call
FileTarget.close()
it behaves differently whether the target was created with a file path or a file pointer:close()
closes the associated file pointerclose()
does not close the associated file pointerExamples (assume ds, ds1 and ds2 are fieldlists)
If we closed the user provided file pointer when
close()
is called this code would not work: