Skip to content

Commit 561d965

Browse files
authored
Merge pull request #37 from pysat/develop
Version 0.5 Release
2 parents 3fdc87f + 7e4f04a commit 561d965

23 files changed

Lines changed: 7291 additions & 3099 deletions

.coveragerc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[report]
2+
omit =
3+
*/tests/*
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
5+
---
6+
7+
**Describe the bug**
8+
A clear and concise description of what the bug is.
9+
10+
**To Reproduce**
11+
Steps to reproduce the behavior:
12+
1. Go to '...'
13+
2. Click on '....'
14+
3. Scroll down to '....'
15+
4. See error
16+
17+
**Expected behavior**
18+
A clear and concise description of what you expected to happen.
19+
20+
**Screenshots**
21+
If applicable, add screenshots to help explain your problem.
22+
23+
**Desktop (please complete the following information):**
24+
- OS: [e.g. iOS]
25+
- Version [e.g. 22]
26+
- Other details about your setup that could be relevant
27+
28+
**Additional context**
29+
Add any other context about the problem here.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
5+
---
6+
7+
**Is your feature request related to a problem? Please describe.**
8+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
9+
10+
**Describe the solution you'd like**
11+
A clear and concise description of what you want to happen.
12+
13+
**Describe alternatives you've considered**
14+
A clear and concise description of any alternative solutions or features you've considered.
15+
16+
**Additional context**
17+
Add any other context or screenshots about the feature request here.

.github/pull_request_template.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Description
2+
3+
Addresses #(issue)
4+
5+
Please include a summary of the change and which issue is fixed. Please also
6+
include relevant motivation and context. List any dependencies that are required
7+
for this change. Please see ``CONTRIBUTING.md`` for more guidelines.
8+
9+
## Type of change
10+
11+
Please delete options that are not relevant.
12+
13+
- Bug fix (non-breaking change which fixes an issue)
14+
- New feature (non-breaking change which adds functionality)
15+
- Breaking change (fix or feature that would cause existing functionality
16+
to not work as expected)
17+
- This change requires a documentation update
18+
19+
# How Has This Been Tested?
20+
21+
Please describe the tests that you ran to verify your changes. Provide
22+
instructions so we can reproduce. Please also list any relevant details for
23+
your test configuration
24+
25+
- Test A
26+
- Test B
27+
28+
**Test Configuration**:
29+
* Operating system
30+
* Version number
31+
* Any details about your local setup that are relevant
32+
33+
# Checklist:
34+
35+
- [ ] Make sure you are merging into the ``develop`` (not ``master``) branch
36+
- [ ] My code follows the style guidelines of this project
37+
- [ ] I have performed a self-review of my own code
38+
- [ ] I have commented my code, particularly in hard-to-understand areas
39+
- [ ] I have made corresponding changes to the documentation
40+
- [ ] My changes generate no new warnings
41+
- [ ] I have added tests that prove my fix is effective or that my feature works
42+
- [ ] New and existing unit tests pass locally with my changes
43+
- [ ] Any dependent changes have been merged and published in downstream modules
44+
- [ ] Add a note to ``CHANGELOG.md``, summarizing the changes

.travis.yml

Lines changed: 45 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,45 @@
1-
language: python
2-
python:
3-
- "2.7"
4-
- "3.6"
5-
sudo: false
6-
7-
addons:
8-
apt:
9-
packages:
10-
- gfortran
11-
- libncurses5-dev
12-
13-
# Setup anaconda
14-
before_install:
15-
#- apt-get update
16-
- if [[ "$TRAVIS_PYTHON_VERSION" == "2.7" ]]; then
17-
wget https://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh;
18-
else
19-
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh;
20-
fi
21-
- bash miniconda.sh -b -p $HOME/miniconda
22-
- export PATH="$HOME/miniconda/bin:$PATH"
23-
- hash -r
24-
- conda config --set always_yes yes --set changeps1 no
25-
- conda update -q --yes conda
26-
# Useful for debugging any issues with conda
27-
- conda info -a
28-
29-
# Replace dep1 dep2 ... with your dependencies
30-
- conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION atlas numpy scipy matplotlib nose pandas statsmodels coverage netCDF4 xarray
31-
32-
# command to install dependencies
33-
install:
34-
- source activate test-environment
35-
- pip install coveralls
36-
- pip install pysatCDF >/dev/null
37-
- pip install pysat
38-
- "python setup.py develop"
39-
# command to run tests
40-
script:
41-
- nosetests -vs --with-coverage --cover-package=pysatMagVect
42-
#coverage run --source=pysat setup.py test
43-
after_success:
44-
coveralls
1+
language: python
2+
dist: xenial
3+
matrix:
4+
include:
5+
- python: 2.7
6+
- python: 3.6
7+
- python: 3.7
8+
- python: 3.8
9+
10+
addons:
11+
apt:
12+
packages:
13+
- gfortran
14+
15+
before_install:
16+
- pip install pytest-cov
17+
- pip install coveralls
18+
- pip install future
19+
# Install version specific packages for 2.7 and 3.5
20+
- pip install 'pandas<0.25'
21+
- pip install xarray
22+
- pip install matplotlib
23+
- pip install apexpy
24+
- pip install numpy
25+
- pip install pysatCDF >/dev/null
26+
- cd ..
27+
- git clone https://github.com/pysat/pysat.git >/dev/null
28+
- cd ./pysat
29+
- python setup.py install >/dev/null
30+
- cd ..
31+
# set up data directory
32+
- mkdir /home/travis/build/pysatData
33+
- python -c 'import pysat; pysat.utils.set_data_dir("/home/travis/build/pysatData")'
34+
35+
install:
36+
# install pysatMagVect
37+
- cd ./pysatMagVect
38+
- python setup.py develop
39+
40+
# command to run tests
41+
script:
42+
- nosetests -vs --with-coverage --cover-package=pysatMagVect
43+
44+
after_success:
45+
- coveralls

CHANGELOG.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Change Log
2+
All notable changes to this project will be documented in this file.
3+
This project adheres to [Semantic Versioning](http://semver.org/).
4+
5+
## [0.5.0] - 2020-02-01
6+
- Added community documents
7+
- Implemented new algorithm for basis vectors. First system valid for multipole fields.
8+
- Implemented new E and D scaling vectors similar to Richmond (apexpy)
9+
- Implemented high accuracy numerical path that minimizes geodetic transformations
10+
- Reviewed and updated default parameters based upon observed peformance
11+
- Validated meridional vector along maximum apex height gradient
12+
- Retained previous basis methods, identified by heritage or integrated
13+
- Improved accuracy and robustness of heritage techniques though new methods recommended
14+
- Validated accuracy of scaling methods
15+
- Incorporated IGRF13
16+
- Expanded and organized unit tests
17+
- Removed pysat as a dependency
18+
- Docstring improvements
19+
20+
## [0.4.0] - 2018-11-26
21+
- Testing routines have been expanded significantly.
22+
- Default parameters have been updated based upon this testing.
23+
- Numerous corrections have been implemented.
24+
25+
## [0.3.1] - 2018-08-06
26+
- Improved use of ECEF and ENU vectors.
27+
28+
## [0.3.0] - 2018-07-24
29+
- Improved robustness of setup.py
30+
- Corrected Earth Centered Earth Fixed (ECEF) and East, North, Up (ENU) conversion routines.
31+
32+
## [0.2.0] - 2018-07-05
33+
- Improved documentation and metadata.
34+
35+
## [0.1.6] - 2018-06-29
36+
- Improved installation process
37+
38+
## [0.1.0] - 2018-06-27
39+
- Initial release

CODE_OF_CONDUCT.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, sex characteristics, gender identity and expression,
9+
level of experience, education, socio-economic status, nationality, personal
10+
appearance, race, religion, or sexual identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
* Using welcoming and inclusive language
18+
* Being respectful of differing viewpoints and experiences
19+
* Gracefully accepting constructive criticism
20+
* Focusing on what is best for the community
21+
* Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
* The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
* Trolling, insulting/derogatory comments, and personal or political attacks
28+
* Public or private harassment
29+
* Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
* Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or
41+
reject comments, commits, code, wiki edits, issues, and other contributions
42+
that are not aligned to this Code of Conduct, or to ban temporarily or
43+
permanently any contributor for other behaviors that they deem inappropriate,
44+
threatening, offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the project team at pysat.developers@gmail.com. All
59+
complaints will be reviewed and investigated and will result in a response that
60+
is deemed necessary and appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an incident.
62+
Further details of specific enforcement policies may be posted separately.
63+
64+
Project maintainers who do not follow or enforce the Code of Conduct in good
65+
faith may face temporary or permanent repercussions as determined by other
66+
members of the project's leadership.
67+
68+
## Attribution
69+
70+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72+
73+
[homepage]: https://www.contributor-covenant.org
74+
75+
For answers to common questions about this code of conduct, see
76+
https://www.contributor-covenant.org/faq

CONTRIBUTING.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ contributions.
88
Short version
99
=============
1010

11-
* Submit bug reports and feature requests at `GitHub <https://github.com/rstoneback/pysatMagVect/issues>`_
11+
* Submit bug reports and feature requests at `GitHub <https://github.com/pysat/pysatMagVect/issues>`_
1212
* Make pull requests to the ``develop`` branch
1313

1414
Bug reports
1515
===========
1616

17-
When `reporting a bug <https://github.com/rstoneback/pysatMagVect/issues>`_ please
17+
When `reporting a bug <https://github.com/pysat/pysatMagVect/issues>`_ please
1818
include:
1919

2020
* Your operating system name and version
@@ -25,7 +25,7 @@ Feature requests and feedback
2525
=============================
2626

2727
The best way to send feedback is to file an issue at
28-
`GitHub <https://github.com/rstoneback/pysatMagVect/issues>`_.
28+
`GitHub <https://github.com/pysat/pysatMagVect/issues>`_.
2929

3030
If you are proposing a feature:
3131

@@ -39,7 +39,7 @@ Development
3939

4040
To set up `pysat` for local development:
4141

42-
1. `Fork pysat on GitHub <https://github.com/rstoneback/pysatMagVect/fork>`_.
42+
1. `Fork pysat on GitHub <https://github.com/pysat/pysatMagVect/fork>`_.
4343
2. Clone your fork locally::
4444

4545
git clone git@github.com:your_name_here/pysatMagVect.git

MANIFEST.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
include pysatMagVect/version.txt
22
include LICENSE
3-
include CONTRIBUTING.md
3+
include CONTRIBUTING.md
4+
prune pysatMagVect/tests

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
# pysatMagVect
2-
[![Build Status](https://travis-ci.org/rstoneback/pysatMagVect.svg?branch=master)](https://travis-ci.org/rstoneback/pysatMagVect)
3-
[![Coverage Status](https://coveralls.io/repos/github/rstoneback/pysatMagVect/badge.svg?branch=master)](https://coveralls.io/github/rstoneback/pysatMagVect?branch=master)
2+
[![Build Status](https://travis-ci.org/pysat/pysatMagVect.svg?branch=master)](https://travis-ci.org/pysat/pysatMagVect)
3+
[![Coverage Status](https://coveralls.io/repos/github/pysat/pysatMagVect/badge.svg?branch=master)](https://coveralls.io/github/pysat/pysatMagVect?branch=master)
44
[![Documentation Status](https://readthedocs.org/projects/pysatmagvect/badge/?version=latest)](https://pysatmagvect.readthedocs.io/en/latest/?badge=latest)
55
[![DOI](https://zenodo.org/badge/138220240.svg)](https://zenodo.org/badge/latestdoi/138220240)
66

7-
The motion of plasma in the ionosphere is the result of forcing from netural winds, electric fields, neutral collisions, as well as the orientation of the background magnetic field. Plasma moves easily along the magnetic field line and less so across it. PysatMagVect calculates directions (unit vectors) based upon the geomagnetic field that are most relevant for understanding the movement of plasma. In addition, pysatMagVect includes methods for scaling ion drifts at one location to either the magnetic footpoint or to the magnetic equator. Scaling to the footpoint is critical for understanding how neutral atmosphere winds at low altitudes (footpoint heights) will be expressed either at the satellite location or at the magnetic equator. Scaling to the magnetic equator can be particularly effective when creating a common basis for integrating measurements from multiple platforms.
7+
The motion of plasma in the ionosphere is the result of forcing from neutral winds, electric fields, neutral collisions, as well as the orientation of the background magnetic field. Plasma moves easily along the magnetic field line and less so across it. PysatMagVect calculates directions (unit vectors) based upon the geomagnetic field that are most relevant for understanding the movement of plasma. In addition, pysatMagVect includes methods for scaling ion drifts at one location to either the magnetic footpoint or to the magnetic equator. Scaling to the footpoint is critical for understanding how neutral atmosphere winds at low altitudes (footpoint heights) will be expressed either at the satellite location or at the magnetic equator. Scaling to the magnetic equator can be particularly effective when creating a common basis for integrating measurements from multiple platforms.
88

99
PysatMagVect is used by the upcoming NASA Ionospheric Connections (ICON) Explorer Mission to understand how remote measurements of neutral motions at 120 km impacts the motion of plasma measured in situ (at the satellite location). This package is also being used by the upcoming NOAA/NSPO COSMIC-2 constellation to express plasma measurements made at the satellite locations in a more geophysically useful basis. PysatMagVect is currently being incorporated into analysis routines suitable for integrating physics-based models (TIEGCM) and measurements from the Communications/Navigation Outage Forecasting System (C/NOFS) satellite.
1010

1111
The development of this software has been supported, in part, by multiple agencies under the following grants: National Aeronautics and Space Agency (NASA NNG12FA45C), National Oceanic and Atmospheric Administration(NOAA NSF AGS-1033112), and the National Science Foundation (NSF 1651393).
1212

1313
# Field-Line Tracing
1414
The International Geomagnetic Reference Field (IGRF) is coupled into SciPy's odeint to produce an accurate field
15-
line tracing algorithm that terminates at a supplied reference height, or after a fixed number of steps. The SciPy integrator is an adaptive method that internally determines an appropriate step size thus the performance of the technique is both robust and accurate. The sensitivity of the field line tracing and other quantities in this package have been established via direct comparison (when possible) as well as sensitvity and consistency tests.
15+
line tracing algorithm that terminates at a supplied reference height, or after a fixed number of steps. The SciPy integrator is an adaptive method that internally determines an appropriate step size thus the performance of the technique is both robust and accurate. The sensitivity of the field line tracing and other quantities in this package have been established via direct comparison (when possible) as well as sensitivity and consistency tests.
1616

1717
# Geomagnetic Unit Vectors
1818
Plasma in the ionosphere is constrained by the geomagnetic field. Motion along magnetic field lines is easy while motion across field lines is comparatively hard. To understand the motion of ions it is generally best to do so along these directions.
1919

2020
- Field Aligned: Along the geomagnetic field, pointing generally from south to north at the equator.
2121

22-
- Zonal: Prependicular to the field aligned vector and the meridional plane of the field line (plane formed by the large scale distribution of the field line)
22+
- Zonal: Perpendicular to the field aligned vector and the meridional plane of the field line (plane formed by the large scale distribution of the field line)
2323

2424
- Meridional: Perpendicular to the zonal and field aligned directions. This vector is positive upward and is vertical at the geomagnetic equator. To remain perpendicular to the field, the meridional vector has a poleward component when away from the magnetic equator. Note that meridional may sometimes be used in other contexts to be north/south. Here, the vector is generally up/down.
25-
25+
2626
# Ion Drift Mapping
2727
Calculates scalars for mapping ion motions expressed in geomagnetic unit vectors to either the magnetic footpoint or to the magnetic equator. These scalars are determined assuming that magnetic field lines are equipotential, thus the electric field associated with ion motion will vary as the distance between two geomagnetic field lines changes. The ExB/B^2 motion accounted for here also varies with magnetic field strength. Either the mappings for just the electric field, or the ion drift, are available. Scaling from the equator or footpoint to a different location is achieved by taking the inverse of the supplied parameters.
2828

2929
# Coordinate Transformations
30-
Supports the conversion of geographic and geodetic (WGS84) into eachother and into Earth Centered Earth Fixed (ECEF). ECEF coordinates are fixed with respect to the Earth, x points from the center towards 0 degrees longitude at the geographic equator, y similarly points to 90 degrees east, while z points along the Earth's rotation axis.
31-
30+
Supports the conversion of geographic and geodetic (WGS84) into each other and into Earth Centered Earth Fixed (ECEF). ECEF coordinates are fixed with respect to the Earth, x points from the center towards 0 degrees longitude at the geographic equator, y similarly points to 90 degrees east, while z points along the Earth's rotation axis.
31+
3232
# Vector Transformations
3333
Supports expressing a vector known in one basis into the same vector expressed in another basis. This supports translating measurements made in a spacecraft frame into frames more relevant for scientific analysis.

0 commit comments

Comments
 (0)