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

Allow make_xarray_grid to take horizontal coordinates as 1d arrays #300

Merged
merged 20 commits into from
Mar 18, 2021

Conversation

santisoler
Copy link
Member

@santisoler santisoler commented Nov 13, 2020

Now make_xarray_grid could take 1d arrays for horizontal coordinates, such as
how xr.DataArray stores the single dimension coordinates. Add a new
non-public meshgrid_to_1d function to convert 2d meshgrids (like the ones
generated by vd.grid_coordinates) to 1d arrays containing a single coordinate
of the corresponding axis. This function checks if all elements inside the 2d
array are equal along the right axis, i.e. a vaild meshgrid.

Reminders:

  • Run make format and make check to make sure the code follows the style guide.
  • Add tests for new features or tests that would have caught the bug that you're fixing.
  • Add new public functions/methods/classes to doc/api/index.rst and the base __init__.py file for the package.
  • Write detailed docstrings for all functions/classes/methods. It often helps to design better code if you write the docstrings first.
  • If adding new functionality, add an example to the docstring, gallery, and/or tutorials.
  • Add your full name, affiliation, and ORCID (optional) to the AUTHORS.md file (if you haven't already) in case you'd like to be listed as an author on the Zenodo archive of the next release.

@santisoler santisoler changed the title Allow make_xarray_grid to take 1d array as horizontal coordinates Allow make_xarray_grid to take horizontal coordinates as 1d arrays Nov 13, 2020
doc/api/index.rst Outdated Show resolved Hide resolved
verde/__init__.py Outdated Show resolved Hide resolved
verde/utils.py Outdated Show resolved Hide resolved
verde/tests/test_utils.py Outdated Show resolved Hide resolved
verde/tests/test_utils.py Outdated Show resolved Hide resolved
@santisoler santisoler added this to the v1.6.0 milestone Mar 8, 2021
Copy link
Member

@leouieda leouieda left a comment

Choose a reason for hiding this comment

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

Looks really good @santisoler! Just a few minor suggestions and feel free to merge afterwards.

verde/tests/test_utils.py Outdated Show resolved Hide resolved
verde/utils.py Outdated Show resolved Hide resolved
verde/utils.py Outdated Show resolved Hide resolved
verde/utils.py Outdated Show resolved Hide resolved
verde/utils.py Outdated Show resolved Hide resolved
verde/utils.py Outdated Show resolved Hide resolved
leouieda and others added 8 commits March 16, 2021 17:45
Co-authored-by: Leonardo Uieda <leouieda@gmail.com>
Co-authored-by: Leonardo Uieda <leouieda@gmail.com>
Co-authored-by: Leonardo Uieda <leouieda@gmail.com>
Co-authored-by: Leonardo Uieda <leouieda@gmail.com>
Co-authored-by: Leonardo Uieda <leouieda@gmail.com>
verde/utils.py Outdated Show resolved Hide resolved
@santisoler
Copy link
Member Author

@leouieda Since we renamed the check function to check_regular_grid I added an additional check: if the horizontal coordinates of a regular grid are evenly spaced.

@leouieda
Copy link
Member

@santisoler i don’t think that check is necessary since we can still do the conversion to xarray if the spacing is variable. So maybe that function could really be check_meshgrid since it just needs to verify that the 2D arrays come from a meshgrid call. Sorry about that 🙂

@santisoler
Copy link
Member Author

@santisoler i don’t think that check is necessary since we can still do the conversion to xarray if the spacing is variable. So maybe that function could really be check_meshgrid since it just needs to verify that the 2D arrays come from a meshgrid call. Sorry about that slightly_smiling_face

No problem! I though the same when I named the function. When you suggested to change it to check_regular_grid I though the function should also check if the coordinates are actually evenly spaced. But you're right, for the purpose of the function it's ok to just check if the 2d-arrays are returns from a meshgrid call.

Let me revert the changes and rename the function to check_meshgrid.

@leouieda
Copy link
Member

👍🏽 this seems good to go!

@santisoler santisoler merged commit 7a04d39 into master Mar 18, 2021
@santisoler santisoler deleted the grid-coords-1d branch March 18, 2021 13:09
jessepisel added a commit to jessepisel/verde that referenced this pull request Apr 13, 2021
* Fix typo on "coordinates" (fatiando#306)

Fix a common typo on Verde: replace "coordiantes" for "coordinates".

* Get INSTALL_REQUIRES from requirements.txt (fatiando#312)

On setup.py, build the INSTALL_REQUIRES variable by reading the requirements.txt file.

* Include requirements.txt in MANIFEST.in (fatiando#313)

* Exclude Dask 2021.03.0 as a dependency (fatiando#311)

Dask 2021.03.0 was causing the tests to fail under Python 3.8 on any OS.
The problem seems to be originated by dask.distributed.
By excluding this version, we avoid the problem in the future.

* Replace Travis and Azure for GitHub Actions (fatiando#309)

Remove Azure and Travis configuration files.
Add Github Actions for continuous integration and deployment.
Related to fatiando/maintenance#1

* Replace versioneer for setuptools-scm (fatiando#307)

Replace `versioneer` with `setuptools_scm` for getting Semver version of
Verde. `setuptools_scm` doesn't require to store additional files to work,
it can be installed and used through `setup.py`. Remove all `versioneer`
related files and mentions. Add `setuptools_scm` to `requirements.txt` and
`environment.yml`. Replace `setup.cfg` for `.flake8`. 
Related to fatiando/maintenance#4

* Replace DeprecationWarning for FutureWarning (fatiando#305)

`DeprecationWarning`s are intended for developers, while the warnings 
we want to raise are to let users know that a feature will be deprecated 
is the `FutureWarning`. Remove the override of `warning.simplefilter`.
Following the comments in fatiando#293

Fixes fatiando#290

* Add license notice to every source file (fatiando#308)

Add a license notice to every source file and a script for automatically
check if the license is present on every file and add it if missing.

* Update files from fatiando/contributing (fatiando#314)

Changes have been made in https://github.com/fatiando/contributing to:
MAINTENANCE.md
Update the copies in this repository to match.
See fatiando/community@b78e925

* Add .eggs to .gitignore (fatiando#315)

Ignore the .eggs directory that is created after `make install`

* Allow make_xarray_grid to take horizontal coordinates as 1d arrays (fatiando#300)

Now make_xarray_grid could take 1d arrays for horizontal coordinates, such as
how xr.DataArray stores the single dimension coordinates. Add a new
non-public meshgrid_to_1d function to convert 2d meshgrids (like the ones
generated by vd.grid_coordinates) to 1d arrays containing a single coordinate
of the corresponding axis. This function checks if all elements inside the 2d
array are equal along the right axis, i.e. a vaild meshgrid.

* Add changelog entry for v1.6.0 (fatiando#316)

* Fix wrong version numbers for PyPI releases (fatiando#317)

For test releases to TestPyPI we have to edit the setuptools_scm
configuration to produce valid version numbers. But it turns out that
this breaks the number for actual releases. To fix it, only edit the
configuration on non-release builds.

* Allow make_xarray_grid to get data as None (fatiando#318)

Used to generate a `xr.Dataset` without any `data_vars` array, 
containing only the coordinates. Will be useful in some cases 
to define an `xr.Dataset` with coordinates only and add the 
`data_vars` afterwards.

* Changelog entry for v1.6.1 (fatiando#320)

Minor release to include a small fix to make_xarray_grid

* Update files from fatiando/contributing (fatiando#321)

Changes have been made in https://github.com/fatiando/contributing to:
MAINTENANCE.md
Update the copies in this repository to match.
See fatiando/community@26724ee

* Extend support for Python 3.9 (fatiando#323)

Add Python 3.9 to the CI and setup.py flags

Co-authored-by: Santiago Soler <santiago.r.soler@gmail.com>
Co-authored-by: Fatiando a Terra Bot <50936856+fatiando-bot@users.noreply.github.com>
Co-authored-by: Leonardo Uieda <leouieda@gmail.com>
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.

2 participants