Skip to content
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

Update README.rst content and add logo #153

Merged
merged 9 commits into from
Nov 17, 2021
Merged

Conversation

tomvothecoder
Copy link
Collaborator

@tomvothecoder tomvothecoder commented Nov 15, 2021

Description

This PR is intended to help clarify the objectives and planned features of XCDAT. it also adds an XCDAT logo, which is a combination of the X in the xarray logo with the CDAT logo.

Preview of README.rst: https://github.com/XCDAT/xcdat/blob/docs/149-151-readme-api/README.rst

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

If applicable:

  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass with my changes (locally and CI/CD build)
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have noted that this is a breaking change for a major release (fix or feature that would cause existing functionality to not work as expected)

@tomvothecoder tomvothecoder self-assigned this Nov 15, 2021
@tomvothecoder tomvothecoder force-pushed the docs/149-151-readme-api branch from 2c9f604 to a79554c Compare November 15, 2021 18:21
@tomvothecoder tomvothecoder changed the title Add styling and about section to README.rst Update README.rst content and add logo Nov 15, 2021
@codecov-commenter
Copy link

codecov-commenter commented Nov 15, 2021

Codecov Report

Merging #153 (3e66cb9) into main (ba70301) will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff            @@
##              main      #153   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            7         7           
  Lines          346       346           
=========================================
  Hits           346       346           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ba70301...3e66cb9. Read the comment docs.

@tomvothecoder tomvothecoder force-pushed the docs/149-151-readme-api branch from f37c122 to baa6e32 Compare November 15, 2021 22:42
@tomvothecoder tomvothecoder marked this pull request as ready for review November 15, 2021 23:08
@tomvothecoder
Copy link
Collaborator Author

tomvothecoder commented Nov 15, 2021

@pochedls @lee1043 @chengzhuzhang I updated the README.rst and docs home page with more descriptions of the package, along with a logo. It combines the X in the xarray logo with the CDAT logo. If the team likes it, we can run with it.

README.rst Outdated Show resolved Hide resolved
@lee1043
Copy link
Collaborator

lee1043 commented Nov 16, 2021

@tomvothecoder nice logo! Thanks for adding it.

Copy link
Collaborator

@chengzhuzhang chengzhuzhang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks good to me!

README.rst Outdated
- Robust handling of coordinates and its associated bounds

- Name-agnostic retrieval of CF compliant coordinates and bounds using ``cf_xarray``
- Generating specific bounds or filling all missing bounds for supported axes
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if this should simply say "Generating bounds for supported axes (if they do not exist)"

When we say "filling all missing bounds" it makes me think that some grid cells have bounds and others do not (but I don't think that is the case).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. I called the method fill_missing_bounds(). Maybe it should be renamed to add_missing_bounds().

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the add_missing_bounds().

The features of this library must meet a set of criteria before being considered for implementation.

1. Climate domain functionality and/or general ``xarray`` utility isn't provided natively with ``xarray``
2. No existing xarray-based packages implement the feature, or the implementation doesn't meet the XCDAT team's defined requirements
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we breaking this criteria by implementing xESMF (since it already does regridding)? Or perhaps we are just extending it to meet requirements?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for bringing that up.

From my understanding (and the design doc), we are handling edge cases on the Dataset/DataArray before passing it to xESMF, so we aren't actually implementing the regridding logic. The use case of xESMF is similar to how cf_xarray is utilized in some XCDAT modules.

@jasonb5 can clarify if I'm missing anything.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can see an argument against implementing regridding in XCDAT as "the user should handle the edge cases themselves and then call xEMSF directly". This would alleviate us from having to write and maintain XCDAT regridding code that is dependent on xEMSF.

However, if those edge cases are very common, then it probably makes sense for us to handle them in XCDAt.


1. Climate domain functionality and/or general ``xarray`` utility isn't provided natively with ``xarray``
2. No existing xarray-based packages implement the feature, or the implementation doesn't meet the XCDAT team's defined requirements
3. Feature can be relatively simple to implement and not overly-flexible
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If someone wants to contribute code that is really flexible - is that a problem?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If an API for a method/function is overly-flexible, it is probably performing too many operations. This makes it much more difficult to unit test all of the conditionals in the callstack (our unit testing enforces simple and maintainable code!).

I don't think it is a problem if we perform thorough reviews in the PRs and suggest changes if necessary so that the contributions are well-scoped.

Copy link
Collaborator

@pochedls pochedls left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tomvothecoder - this seems like a great summary to me. I just made some general comments based on the impression I got when reading the README. I'm happy to have this merged when you're ready.

@tomvothecoder tomvothecoder merged commit 8e791aa into main Nov 17, 2021
@tomvothecoder tomvothecoder deleted the docs/149-151-readme-api branch November 17, 2021 19:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update README and docs with goals and objectives Add a logo for XCDAT
5 participants