Giter Club home page Giter Club logo

aacgmv2's People

Contributors

aburrell avatar cmeeren avatar hugovk avatar klaundal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

aacgmv2's Issues

How to use aacgmv2 beyond 2025

Dear Dr Burrell,

Please can I ask if you are able to assist to adapt aacgmv2 for dates from 2025 until 2032, as required for a project I am working on?

On my attempt to run aacgmv2 for dates in 2025, I get the following error:
raise RuntimeError("cannot set time for {:}: {:}".format(dtime, err))
RuntimeError: cannot set time for 2025-01-01 00:00:00+00:00: AACGM_v2_SetDateTime returned error code -1

I understand that the AACCM-v2 coefficients have been generated until 2025 and that the above error results from line 1082 in the C-library aacgmlib_v2.c:

if ((fyear < IGRF_FIRST_EPOCH) || (fyear >= IGRF_LAST_EPOCH + 5.)) {
AACGM_v2_errmsg(1);
return (-1);
}

I am assuming that the variable IGRF_LAST_EPOCH must equate to the start of 2020, however I am unable to find where IGRF_LAST_EPOCH is defined or inputted in the C Library.

Please can I ask on how I can adapt the current code or coefficient data files to enable aacgmv2 from 2025 until 2032?

Kind regards,
Yasir

RunTime error while trying to convert geographic coordinates to geomagnetic

Hi, I'm having issues converting some coordinates that should be straightforward based on the documentation. I am converting a full globe worth of data points, but for some reason I am getting a runtime error on most (but not all) points. For example,

unable to perform conversion at 17.5,8.8 300.0 km, 2020-02-17 00:00:00 using method 4: <class 'RuntimeError'>

I tried with every method and at different arbitrary dates/heights and got similar results .
To Reproduce
Run, for example,

import aacgmv2
import datetime as dt
import numpy as np
dtime = dt.datetime(2013, 1, 1)
print(np.array(aacgmv2.get_aacgm_coord(20.0,15.0, 300, dtime))

Expected behavior
I expected it to output the converted coordinates

Desktop (please complete the following information):

  • OS: Linux Ubuntu
  • Version 22.04

>200x disparity in computation time between computers

A student and I are working together on some data and using aacgmv2 to convert some coordinates.

On their machine (AMD Ryzen 5 3600):

%timeit convert_mlt(np.arange(90), dt.datetime(2015, 1, 1))
2.19 ms ± 69.2 us per loop (mean ± std. dev. of 7 runs, 100 loops each)

On my machine (Apple M1 Ultra):

%timeit convert_mlt(np.arange(90), dt.datetime(2015, 1, 1))
509 ms ± 24.8 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

So, on my computer, the process is more than 200x slower than on theirs.

Environment variables error in Windows

Describe the bug
aacgmv2 appears to install normally with pip. Python crashes during c_aacgmv2.set_datetime(https://github.com/aburrell/aacgmv2/blob/main/aacgmv2/wrapper.py#L226). The problem is that in __init__.py, the newly set environment variables aren't being seen by the backend C code. This causes the C code to crash during the call to getenv(https://github.com/aburrell/aacgmv2/blob/main/c_aacgmv2/src/aacgmlib_v2.c#L880).

Here is what I see:
image

When I manually set the two environment variables before starting powershell / pycharm, it works fine, but I do get the warning that the variables are being overwritten.

To Reproduce
Steps to reproduce the behavior:

  1. pip install aacgmv2
  2. run the pictured code, or the code in the README
  3. Python should crash

Desktop (please complete the following information):

  • OS: Windows 10
  • Python 3.7.10
  • anaconda environment
  • compiling with gcc 10.3.0 (MSYS2)

Additional context

  • not an urgent fix: easy workaround

Environmental variable warnings printed to stdout

When running aacgmv2 with a virtual environment, the warnings about environmental variables in init.py are printed to stdout. When using your module, this causes the warnings to leak into my script output. If you would change all the print() statements in init.py to sys.stderr.write() statements, the warnings would go to stderr and would solve my issue. For now, I simply edited the file myself, so this is not a critical issue in my case. -Bill

nans taking over the output of get_aacgm_coord_arr

Describe the bug
Sometimes, nan takes over the output of get_aacgm_coord_arr.

To Reproduce
Run the following code:

import aacgmv2 as aacgm
lat = [25.69817439, 19.81656206]
lon = [19.184186, 19.11999446]
alt = [465.28404149, 466.37134689]
print(aacgm.get_aacgm_coord_arr(lat[0], lon[0], alt[0], dt.datetime(2014,12,7,16,17)))
print(aacgm.get_aacgm_coord_arr(lat[1], lon[1], alt[1], dt.datetime(2014,12,7,16,17)))
print(aacgm.get_aacgm_coord_arr(lat, lon, alt, dt.datetime(2014,12,7,16,17)))

and you get:

(array([21.06023285]), array([91.8062328]), array([17.81449611]))
(array([nan]), array([nan]), array([nan]))
(array([nan, nan]), array([nan, nan]), array([nan, nan]))

Running get_aacgm_coord_arr with method=allowtrace eliminates all the nan values in the above example, implying that setting allowtrace as the default method might help, but the following code also exhibits the same bug:

lat = [25.69817439, 17.14050096]
lon = [19.184186, -4.46442997]
alt = [465.28404149, 466.79848959]
method = 'geocentric|allowtrace'
print(aacgm.get_aacgm_coord_arr(lat[0], lon[0], alt[0], dt.datetime(2014,12,7,16,17), method=method))
print(aacgm.get_aacgm_coord_arr(lat[1], lon[1], alt[1], dt.datetime(2014,12,7,16,17), method=method))
print(aacgm.get_aacgm_coord_arr(lat, lon, alt, dt.datetime(2014,12,7,16,17), method=method))

This code results in the following:

(array([21.16991252]), array([91.79687939]), array([17.81387255]))
(array([nan]), array([nan]), array([nan]))
(array([nan, nan]), array([nan, nan]), array([nan, nan]))

Expected behavior
I would expect the final print statement in the first example to print (array([21.06023285, nan]), array([91.8062328, nan]), array([17.81449611, nan])) and in the second example to print (array([21.16991252, nan]), array([91.79687939, nan]), array([17.81387255, nan]))

Desktop (please complete the following information):

  • OS: macOS 10.14.6
  • Version 2.5.2 (commit e4961ed)

Appveyor on master branch

Describe the bug
Appveyor will succeed on the develop branch, but will fail when develop is pulled into master.

Remove Python 2 support

Is your feature request related to a problem? Please describe.
Support for python 2 ended at the beginning of 2020.

Describe the solution you'd like
In the next release, remove support for python 2

Describe alternatives you've considered
Continuing to support python 2, but this becomes increasingly difficult as upstream packages drop their support.

Trying to get the magnetic longitude for 6.63h MLT on 2011-10-06 12:46 UT gives RuntimeError

In [296]: aa.convert_mlt(6.63, dt.datetime(2011,10,6,12,45), m2a = True)
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-296-911d07a9749d> in <module>()
----> 1 aa.convert_mlt(6.63, dt.datetime(2011,10,6,12,45), m2a = True)

/Users/John/anaconda/lib/python2.7/site-packages/aacgmv2/wrapper.pyc in convert_mlt(arr, datetime, m2a)
    185 
    186     # convert subsolar coordinates at 30Re altitude to AACGM-v2 (tracing)
--> 187     _, mlon_subsol = convert(subsol_lat, subsol_lon, 30*6371.2, datetime, trace=True)
    188 
    189     # convert the input array

/Users/John/anaconda/lib/python2.7/site-packages/aacgmv2/wrapper.pyc in convert(lat, lon, alt, date, a2g, trace, allowtrace, badidea, geocentric)
    112 
    113     # convert
--> 114     lat_out, lon_out, _ = aacgmConvert_vectorized(lat, lon, alt, flag)
    115 
    116     return lat_out, lon_out

/Users/John/anaconda/lib/python2.7/site-packages/numpy/lib/function_base.pyc in __call__(self, *args, **kwargs)
   1809             vargs.extend([kwargs[_n] for _n in names])
   1810 
-> 1811         return self._vectorize_call(func=func, args=vargs)
   1812 
   1813     def _get_ufunc_and_otypes(self, func, args):

/Users/John/anaconda/lib/python2.7/site-packages/numpy/lib/function_base.pyc in _vectorize_call(self, func, args)
   1872             _res = func()
   1873         else:
-> 1874             ufunc, otypes = self._get_ufunc_and_otypes(func=func, args=args)
   1875 
   1876             # Convert args to object arrays first

/Users/John/anaconda/lib/python2.7/site-packages/numpy/lib/function_base.pyc in _get_ufunc_and_otypes(self, func, args)
   1834             # arrays (the input values are not checked to ensure this)
   1835             inputs = [asarray(_a).flat[0] for _a in args]
-> 1836             outputs = func(*inputs)
   1837 
   1838             # Performance note: profiling indicates that -- for simple

RuntimeError: AACGM_v2_Convert returned error code -1

Why is this occurring? I couldn't find anything about what an error code of -1 denotes.

Units and conventions needed in documentation

In the documentation, it would be useful to include the units and conventions. For example, is the longitude in degree or radians? Is east positive, or is west positive? Is the altitude in feet, metres or kilometres? What is the reference level for the altitude; the spheroid or an average Earth radius or what?

Yes, in principle one can open up the code and take a look, but it would save a lot of hassle (and confusion) to have it in the documentation where the arguments are described.

Ref: https://aacgmv2.readthedocs.io/en/stable/reference/aacgmv2.html

bug in convert_mlt

on Ubuntu 16.04

there is seems to be a bug in convert_mlt:

In [1443]: aacgmv2.convert_mlt(0, dt.datetime(1997,12,30,5,0,0), m2a=True)
Out[1443]: 77.17430936596469

In [1444]: aacgmv2.convert_mlt(0, dt.datetime(1997,12,30,10,0,0), m2a=True)
Out[1444]: 77.17430936596469

In [1445]: aacgmv2.convert_mlt(0, dt.datetime(1997,12,30,15,0,0), m2a=True)
Out[1445]: 77.17430936596469

In [1446]: aacgmv2.convert_mlt(0, dt.datetime(1997,12,30,20,0,0), m2a=True)
Out[1446]: 77.17430936596469

as time changes, mlon of 0 mlt point is not changing

Keep utility functions currently marked as deprecated

Currently, there are 3 functions in aacgmv2.deprecated:

  • gc2gd_lat
  • igrf_dipole_axis
  • subsol

Arguably, gc2gd_lat could be deprecated since this kind of function is better served via something like pymap3d, however, the other 2 functions are extremely useful to have when using aacgm and weimer.

In order to properly drive weimer, one needs the dipole tilt axis, as defined in Laundal and Richmond 2016, equation 15. This requires both the IGRF dipole axis and the subsolar point.

Since weimer uses aacgm coordinates and it needs to be driven with the dipole tilt axis, I recommend that igrf_dipole_axis and subsol are removed from deprecation plans and instead moved into something like a utils sub module or something.

Thoughts?

Can't pass series of datetimes to accompany series of coordinates

When converting coordinates, you can pass a timeseries of coordinates but not the accompanying datetimes to aacgmv2.convert. I would have expected to be able to pass a series of datetimes which was the same length as the coordinates to be converted.

I'm not sure how much difference the datetime makes to the conversion when dealing with timescales of seconds, so I'm just using the first datetime in the timeseries for now.

Hope this helps!

import numpy as np
import aacgmv2
datetime = np.array([dt.datetime(2017,12,3), dt.datetime(2017,12,3,1)])
latNH, lonNH = np.array([ 45.,  50.]), np.array([ 42.,  84.])
print(aacgmv2.convert(latNH, lonNH, 780, date = datetime[0]))
aacgmv2.convert(latNH, lonNH, 780, date = datetime)

The print statement gives (array([ 44.12680926, 48.63762016]), array([ 115.69978107, 158.0402777 ]))

And then the following error is thrown:

---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-9-d3e2673da3f0> in <module>()
----> 1 aacgmv2.convert(latNH, lonNH, 780, date = datetime)

/anaconda2/lib/python2.7/site-packages/aacgmv2/deprecated.pyc in convert(lat, lon, alt, date, a2g, trace, allowtrace, badidea, geocentric)
     73     # convert location
     74     lat_out, lon_out, _ = aacgmv2.convert_latlon_arr(lat, lon, alt, date,
---> 75                                                      code=bit_code)
     76 
     77     return lat_out, lon_out

/anaconda2/lib/python2.7/site-packages/aacgmv2/wrapper.pyc in convert_latlon_arr(in_lat, in_lon, height, dtime, code, igrf_file, coeff_prefix)
    245 
    246     assert isinstance(dtime, dt.datetime), \
--> 247         logging.error('time must be specified as datetime object')
    248 
    249     # Test height

AssertionError: None

I didn't notice that convert was deprecated

I have been using aacgmv2.convert because, when I first imported the aacgmv2 module, I simply typed aacgmv2. and then hit tab in my Jupyter notebook, and chose convert because it looks like the most sensible of the methods that present themselves when one does that. I've just noticed that the convert routine is in deprecated.py, and I should probably have been using something like get_aacgm_coord_arr.

I appreciate the above is entirely my fault for diving in and starting hacking without RTM, but I imagine that I'm not the only one who tends to learn Python modules through usage instead of through documentation. To that end, could convert print something, or maybe throw a FutureWarning, so that it's more obvious to an end user that this routine is deprecated and other routines are better choices?

python crashes when running aacgmv

I'm running Python 3.9 through Anaconda on a Windows 10 (x64 bit) machine. In order to install the AACGM python using the pip command, I had to first install a c-compiler, I chose GCC for windows (MinGW GCC 6.3.0). When I test the python code using an example similar to the one given in the README file, python crashes, see file with steps taken:

AACGM_conversion_test

Copyright and License disclaimer

In the future, you may want to add a copyright line at the top with a disclaimer indicating where the license file and maybe which license you are using as this is a requirement of the MIT license.
For example:

# Copyright (C) 2019 NRL 
# Author: Angeline Burrell
# Disclaimer: This code is under the MIT license found at the root in the LICENSE file

This will help users know who to contact about the code or what privileges they have based on the license.

As a reminder LICENSES trump copyrights privileges, so open-source licenses use copyrights as a line of credit to the author.

nan handling is not what I would expect

Describe the bug
The library appears to introduce spurious data duplicates when an input contains nan.

To Reproduce
Set the following variables:

latitude = np.array([44.757, np.nan, 46])
longitude = np.array([286.893, np.nan, 290])
height = np.array([100, np.nan, 100])
date = dt.datetime(2001,1,1,2,26)

Then, run the following line of code:

aacgm.get_aacgm_coord_arr(latitude, longitude, height, date)

which results in this output:

array([ 55.10077765, -55.10077765,  55.86473325]),
array([4.46850515, 4.46850515, 8.97687841]),
array([21.72454211, 21.72454211, 22.02510033])

Expected behavior
I would expect the middle of each of the output arrays to be nan, or for the code to throw some exception or error.

Desktop:

  • OS: macOS 10.14.3
  • Version: 2.4.2

Convert LatLong from GEO to ACGM for year 2021

I'm trying to convert the coordinates, from geographic to geomagnetic, for 2021-04-12, and I got an error, saying that it is impossible to set that time in the "AACGM_v2_SetDateTime" function.

I'm using Python 3.9.

Steps to reproduce the behavior:

import datetime
import aacgmv2
dt = datetime.datetime.strptime('20210412', '%Y%m%d')

cgm_lat, cgm_lon, cgm_r = aacgmv2.convert_latlon(53.856, 265.34, 100., dt, method_code='G2A')

--

See below the error print:


File ".local/lib/python3.9/site-packages/aacgmv2/wrapper.py", line 229, in convert_latlon
raise RuntimeError("cannot set time for {:}: {:}".format(dtime, err))
RuntimeError: cannot set time for 2021-04-12 00:00:00: AACGM_v2_SetDateTime returned error code -2

  • OS:Manjaro
  • Version 21.0.1
  • Python 3.9

Total Python hang with certain values passed to get_aacgm_coord_arr

Describe the bug
In some circumstances, get_aacgm_coord_arr completely hangs.

To Reproduce
Run aacgm.get_aacgm_coord_arr(44.757, 286.893, 6371000000.2, dt.datetime(2001,1,1,2,26)) and Python completely hangs.

I initially thought this was because height was set too high, but aacgm.get_aacgm_coord_arr(0., 180., 1000000000000000000., dt.datetime(2001,1,1,2,26)) doesn't hang, and I don't know why.

Expected behavior
I would expect it not to hang (I think I'd expect some sort of exception to be thrown since the height value is so clearly too high to be a valid input).

Desktop (please complete the following information):

  • OS: macOS 10.14.3
  • Version: 2.4.2

Question: logbook dependency

Quick question, why is the logbook used instead of logging? I didn't dig through the codebase much, but it doesn't look like the features of logbook are being used in a way that necessitates using it?

More use examples

Is your feature request related to a problem? Please describe.
Some people have trouble figuring out how to use the functions for their own purposes

Describe the solution you'd like
More use examples in the documentation

Describe alternatives you've considered
Answering questions as they come up

Reminders
This is a volunteer-driven project. Code contributions are welcome, as is help
testing new code.

Improve unit test coverage

Is your feature request related to a problem? Please describe.
Coveralls places code coverage between 80-90%.

Describe the solution you'd like
This should be improved to above 95% at a minimum.

Describe alternatives you've considered
Leaving it alone.

For coverage status see: https://coveralls.io/github/aburrell/aacgmv2

Convert LatLon returning NaN

Describe the bug
I'm trying to convert a series of glat,glon coordinates into mlat,mlon for a bunch of different dates. Depending on the date, I either return value or an array of NaN.

For example, converting the same 5 coordinates at different dates produces:

2013-09-01 00:00:00
[[18.82371153  0.98749918  2.48735885  5.84156392  8.18149188]]
2013-10-01 00:00:00
[[18.82657586  0.77711836  2.41151422  5.80920526  8.1584157 ]]
2013-11-01 00:00:00
[[18.82953417  0.46936     2.33055034  5.77557778  8.13450176]]
2013-12-01 00:00:00
[[nan nan nan nan nan]]
2014-01-01 00:00:00
[[nan nan nan nan nan]]

To Reproduce

To reproduce, convert the following at different dates:

glat = [25.0, 25.0, 25.10351562500003, 25.63629150390625, 26.254516601562557]
glon = [34.82256126193528, -14.871570546036931, -14.8245849609375, -14.800903320312472, -14.439880371093778]

date_working = datetime(year=2013, month=11, day=1, hour=0, minute=0)
date_failing = datetime(year=2013, month=12, day=1, hour=0, minute=0)

aacgmv2.convert_latlon_arr(glat, glon, 100, date_working, code='G2A')
aacgmv2.convert_latlon_arr(glat, glon, 100, date_failing, code='G2A')

Expected behavior
I would expect it to return the values. If one of the positions fails it should have a single NaN value but not the whole array. Also, it should return a warning describing why it has failed.

Desktop (please complete the following information):

  • OS: osx
  • Version: 2.5.1

Testing Python 3.7+ on Windows x64

Describe the bug
Python 3.7+ fails on Windows x64 architecure.

To Reproduce
Steps to reproduce the behavior:

  1. python setup.py install
  2. See error
c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -Ic_aacgmv2/include -IC:\python37-x64\include -IC:\python37-x64\include "-Ic:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE" "-IC:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE" "-IC:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\gl" /Tcaacgmv2/aacgmv2module.c /Fobuild\temp.win-amd64-3.7\Release\aacgmv2/aacgmv2module.obj
    aacgmv2module.c
    c:\python37-x64\include\pyport.h(6) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
    error: command 'c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2
    
    ----------------------------------------
  Can't roll back aacgmv2; was not uninstalled
Command "C:\projects\aacgmv2\.tox\3.7-nocover\Scripts\python.EXE -u -c "import setuptools, tokenize;__file__='C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\pip-req-build-8jmq88n9\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\appveyor\AppData\Local\Temp\1\pip-record-jpv6hrfi\install-record.txt --single-version-externally-managed --compile --install-headers C:\projects\aacgmv2\.tox\3.7-nocover\include\site\python3.7\aacgmv2" failed with error code 1 in C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-8jmq88n9\

Expected behavior
The package should install without errors

Desktop (please complete the following information):

  • OS: Visual Studio 2015
  • Version: Python 3.7 and 3.8
  • Running on AppVeyor

Suggested Solution
Use MinGW64 instead of Visual Studio. See https://www.appveyor.com/docs/windows-images-software/#mingw-msys-cygwin for availability. Some attempts were made to rectify this in the coveralls branch, but weren't implemented correctly.

MAINT: remove deprecated functions

Is your feature request related to a problem? Please describe.
There are deprecated functions in aacgmv2.deprecated that are scheduled for removal.

Describe the solution you'd like
Remove the functions.

Active or remove unused code quality tools

Describe the bug
Some of the code quality tools that have been used in the past are currently not being used. However, the old badges are being displayed.

Solution
To fix this, the accounts need to be reactivated and PR triggers for these applications need to be fixed. Alternatively, their use should be removed and the accounts closed. The relevant applications are:

  • Codacy
  • CodeCov
  • Code Climate

Installation error

Good afternoon,

I was trying to install aacgmv2 with pip as suggested in the quick start, but I get an installation error. The output is presented below.

Any help would be very appreciated.

Kind regards,

Vasco Grilo

(venv) C:\Users\vasco\Documents\Education\Trabalhos\University 5th year - 2019 2020\2nd semester\Msc thesis\calcs>pip install aacgmv2
Collecting aacgmv2
Using cached https://files.pythonhosted.org/packages/83/7a/4556faee3ce5d1fa377ef25d869e8dd6952f0cfd06228ec515ca0293f709/aacgmv2-2.6.0.tar.gz
Requirement already satisfied: numpy in c:\users\vasco\documents\education\trabalhos\university 5th year - 2019 2020\2nd semester\msc thesis\calcs\venv\lib\site-packages (from aac
gmv2) (1.18.1)
Installing collected packages: aacgmv2
Running setup.py install for aacgmv2 ... error
Complete output from command "C:\Users\vasco\Documents\Education\Trabalhos\University 5th year - 2019 2020\2nd semester\Msc thesis\calcs\venv\Scripts\python.exe" -u -c "import
setuptools, tokenize;file='C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-kwyremmt\aacgmv2\setup.py';f=getattr(tokenize, 'open', open)(file);code=f
.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-record-j8wiyojo\install-recor
d.txt --single-version-externally-managed --compile --install-headers "C:\Users\vasco\Documents\Education\Trabalhos\University 5th year - 2019 2020\2nd semester\Msc thesis\calcs\v
env\include\site\python3.6\aacgmv2":
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\aacgmv2
copying aacgmv2\deprecated.py -> build\lib.win-amd64-3.6\aacgmv2
copying aacgmv2\wrapper.py -> build\lib.win-amd64-3.6\aacgmv2
copying aacgmv2_init_.py -> build\lib.win-amd64-3.6\aacgmv2
copying aacgmv2_main_.py -> build\lib.win-amd64-3.6\aacgmv2
running egg_info
writing aacgmv2.egg-info\PKG-INFO
writing dependency_links to aacgmv2.egg-info\dependency_links.txt
writing entry points to aacgmv2.egg-info\entry_points.txt
writing requirements to aacgmv2.egg-info\requires.txt
writing top-level names to aacgmv2.egg-info\top_level.txt
reading manifest file 'aacgmv2.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '.isort.cfg'
warning: no files found matching '.pylintrc'
warning: no previously-included files matching '.py[cod]' found anywhere in distribution
warning: no previously-included files matching 'pycache' found anywhere in distribution
warning: no previously-included files matching '
.so' found anywhere in distribution
warning: no previously-included files matching '.dylib' found anywhere in distribution
warning: no previously-included files matching '
.dSYM' found anywhere in distribution
warning: no previously-included files matching '.pytest_cache' found anywhere in distribution
writing manifest file 'aacgmv2.egg-info\SOURCES.txt'
copying aacgmv2\aacgmv2module.c -> build\lib.win-amd64-3.6\aacgmv2
copying aacgmv2\igrf13coeffs.txt -> build\lib.win-amd64-3.6\aacgmv2
copying aacgmv2\magmodel_1590-2020.txt -> build\lib.win-amd64-3.6\aacgmv2
creating build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1590.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1595.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1600.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1605.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1610.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1615.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1620.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1625.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1630.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1635.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1640.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1645.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1650.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1655.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1660.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1665.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1670.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1675.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1680.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1685.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1690.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1695.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1700.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1705.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1710.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1715.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1720.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1725.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1730.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1735.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1740.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1745.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1750.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1755.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1760.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1765.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1770.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1775.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1780.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1785.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1790.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1795.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1800.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1805.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1810.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1815.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1820.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1825.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1830.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1835.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1840.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1845.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1850.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1855.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1860.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1865.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1870.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1875.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1880.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1885.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1890.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1895.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1900.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1905.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1910.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1915.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1920.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1925.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1930.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1935.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1940.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1945.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1950.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1955.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1960.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1965.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1970.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1975.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1980.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1985.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1990.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1995.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-2000.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-2005.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-2010.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-2015.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-2020.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-2025.asc -> build\lib.win-amd64-3.6\aacgmv2\aacgm_coeffs
creating build\lib.win-amd64-3.6\aacgmv2\aacgmv2.egg-info
copying aacgmv2\aacgmv2.egg-info\SOURCES.txt -> build\lib.win-amd64-3.6\aacgmv2\aacgmv2.egg-info
copying aacgmv2\aacgmv2.egg-info\dependency_links.txt -> build\lib.win-amd64-3.6\aacgmv2\aacgmv2.egg-info
copying aacgmv2\aacgmv2.egg-info\entry_points.txt -> build\lib.win-amd64-3.6\aacgmv2\aacgmv2.egg-info
copying aacgmv2\aacgmv2.egg-info\requires.txt -> build\lib.win-amd64-3.6\aacgmv2\aacgmv2.egg-info
copying aacgmv2\aacgmv2.egg-info\top_level.txt -> build\lib.win-amd64-3.6\aacgmv2\aacgmv2.egg-info
creating build\lib.win-amd64-3.6\aacgmv2\tests
copying aacgmv2\tests\test_c_aacgmv2.py -> build\lib.win-amd64-3.6\aacgmv2\tests
copying aacgmv2\tests\test_cmd_aacgmv2.py -> build\lib.win-amd64-3.6\aacgmv2\tests
copying aacgmv2\tests\test_dep_aacgmv2.py -> build\lib.win-amd64-3.6\aacgmv2\tests
copying aacgmv2\tests\test_environ_aacgmv2.py -> build\lib.win-amd64-3.6\aacgmv2\tests
copying aacgmv2\tests\test_py_aacgmv2.py -> build\lib.win-amd64-3.6\aacgmv2\tests
copying aacgmv2\tests\test_struct_aacgmv2.py -> build\lib.win-amd64-3.6\aacgmv2\tests
creating build\lib.win-amd64-3.6\aacgmv2\tests\test_data
copying aacgmv2\tests\test_data\test_convert.txt -> build\lib.win-amd64-3.6\aacgmv2\tests\test_data
copying aacgmv2\tests\test_data\test_convert_mlt.txt -> build\lib.win-amd64-3.6\aacgmv2\tests\test_data
copying aacgmv2\tests\test_data\test_convert_mlt_single_line.txt -> build\lib.win-amd64-3.6\aacgmv2\tests\test_data
copying aacgmv2\tests\test_data\test_convert_single_line.txt -> build\lib.win-amd64-3.6\aacgmv2\tests\test_data
running build_ext
building 'aacgmv2._aacgmv2' extension
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
creating build\temp.win-amd64-3.6\Release\aacgmv2
creating build\temp.win-amd64-3.6\Release\c_aacgmv2
creating build\temp.win-amd64-3.6\Release\c_aacgmv2\src
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ic_aacgmv2/include "-IC:\Users\vasco\Documents\Education\Traba
lhos\University 5th year - 2019 2020\2nd semester\Msc thesis\calcs\venv\include" -IC:\Users\vasco\AppData\Local\Programs\Python\Python36\include -IC:\Users\vasco\AppData\Local\Pro
grams\Python\Python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC:\Pr
ogram Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" /Tcaacgmv2/aacgmv2module.c /Fobuild\temp.win-amd64-3.6\Release\aacgmv2/aacgmv2module.obj
aacgmv2module.c
c:\users\vasco\appdata\local\programs\python\python36\include\pyconfig.h(222): fatal error C1083: Cannot open include file: 'basetsd.h': No such file or directory
error: command 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe' failed with exit status 2

----------------------------------------

Command ""C:\Users\vasco\Documents\Education\Trabalhos\University 5th year - 2019 2020\2nd semester\Msc thesis\calcs\venv\Scripts\python.exe" -u -c "import setuptools, tokenize;__
file__='C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-kwyremmt\aacgmv2\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n',
'\n');f.close();exec(compile(code, file, 'exec'))" install --record C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-record-j8wiyojo\install-record.txt --single-version-e
xternally-managed --compile --install-headers "C:\Users\vasco\Documents\Education\Trabalhos\University 5th year - 2019 2020\2nd semester\Msc thesis\calcs\venv\include\site\python3
.6\aacgmv2"" failed with error code 1 in C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-kwyremmt\aacgmv2\

Problem with warning even when env variables not changing

I was wondering if we could change the init.py method to not output a warning when the two env variables are being set to what they already were. In the version below the warning only occurs if they are being set to a different value. In the present version there is a warning even if the value is not changing. I get this warning when python calls a subprocess that also imports aacgmv2. Here are the lines with this change:

If not defined, or defined but different, set the IGRF and AACGM environment variables

reset_warn = False
if 'IGRF_COEFFS' in _os.environ.keys():
if not _os.environ['IGRF_COEFFS'] == IGRF_COEFFS:
print("resetting environment variable IGRF_COEFFS in python script")
reset_warn = True
_os.environ['IGRF_COEFFS'] = IGRF_COEFFS

if 'AACGM_v2_DAT_PREFIX' in _os.environ.keys():
if not _os.environ['AACGM_v2_DAT_PREFIX'] == AACGM_v2_DAT_PREFIX:
print("resetting environment variable AACGM_v2_DAT_PREFIX in python script")
reset_warn = True
_os.environ['AACGM_v2_DAT_PREFIX'] = AACGM_v2_DAT_PREFIX

Problem with pip install aacgmv2

When I install aacgmv2 via pip, it is putting the files listed below directly in the site-packages directory, instead of in a subdirectory called aacgmv2. But the aacgmv2 module expects the files to be in that subdirectory, so the import fails unless you manually create that directory under site-packages, and move these files. This problem has occured on linux systems here at MIT Millstone Hill, and also at Arecibo and at Eiscat. -Bill Rideout, [email protected]

_aacgmv2.so
deprecated.py
deprecated.pyc
init.py
init.pyc
main.py
main.pyc
wrapper.py
wrapper.pyc

pip install aacgm2 (install fails)

Describe the bug
Even with the numpy dependency install, a fresh out of the box python virtual environment doesn't install properly when running 'pip install aacgmv2'

To Reproduce
Steps to reproduce the behavior:

  1. venv my_venv (then activate virtual environment)
  2. pip install numpy (this is successful naturally)
  3. pip install aacgmv2 (this partially builds but fails)
  4. See error at bottom of post

System Information

  • OS: WIN10
  • Python version 3.9.0
  • using a fresh virtual environment for testing purposes

Request:

  • How can I build/install this package successfully? It seems there are some environment variables or flags I need to set in the build files, that prevents pip from installing successfully. It would be ideal if those could be fixed, or alternatively if your team could provide the adjusted install procedure of cloning via git and setting those flags manually before building. Thank you for your support and for an excellent open source package!!

What Else I Tried:
this also failed with the same error message as below --> pip install git+https://github.com/aburrell/aacgmv2.git

************************************* BEGIN ERROR MESSAGE ********************************************
(aliaa) C:\Users\Phillip\Documents\VirtualEnvironments>pip install aacgmv2
Collecting aacgmv2
Using cached aacgmv2-2.6.3.tar.gz (1.6 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy in c:\users\phillip\documents\virtualenvironments\aliaa\lib\site-packages (from aacgmv2) (1.25.1)
Building wheels for collected packages: aacgmv2
Building wheel for aacgmv2 (pyproject.toml) ... error
error: subprocess-exited-with-error

× Building wheel for aacgmv2 (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [303 lines of output]
C:\Users\Phillip\AppData\Local\Temp\pip-build-env-ep3lpome\overlay\Lib\site-packages\setuptools\config_apply_pyprojecttoml.py:69: SetuptoolsWarning: install_requires overwritten in pyproject.toml (dependencies)
corresp(dist, value, root_dir)
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-39
creating build\lib.win-amd64-cpython-39\aacgmv2
copying aacgmv2\deprecated.py -> build\lib.win-amd64-cpython-39\aacgmv2
copying aacgmv2\utils.py -> build\lib.win-amd64-cpython-39\aacgmv2
copying aacgmv2\wrapper.py -> build\lib.win-amd64-cpython-39\aacgmv2
copying aacgmv2_init_.py -> build\lib.win-amd64-cpython-39\aacgmv2
copying aacgmv2_main_.py -> build\lib.win-amd64-cpython-39\aacgmv2
running egg_info
writing aacgmv2.egg-info\PKG-INFO
writing dependency_links to aacgmv2.egg-info\dependency_links.txt
writing requirements to aacgmv2.egg-info\requires.txt
writing top-level names to aacgmv2.egg-info\top_level.txt
reading manifest file 'aacgmv2.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files matching '.py[cod]' found anywhere in distribution
warning: no previously-included files matching 'pycache' found anywhere in distribution
warning: no previously-included files matching '
.so' found anywhere in distribution
warning: no previously-included files matching '.dylib' found anywhere in distribution
warning: no previously-included files matching '
.dSYM' found anywhere in distribution
warning: no previously-included files matching '.pytest_cache' found anywhere in distribution
adding license file 'LICENSE'
adding license file 'LICENSE-AstAlg.txt'
adding license file 'AUTHORS.rst'
writing manifest file 'aacgmv2.egg-info\SOURCES.txt'
C:\Users\Phillip\AppData\Local\Temp\pip-build-env-ep3lpome\overlay\Lib\site-packages\setuptools\command\build_py.py:201: _Warning: Package 'aacgmv2.aacgm_coeffs' is absent from the packages configuration.
!!

          ********************************************************************************
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'aacgmv2.aacgm_coeffs' as an importable package[^1],
          but it is absent from setuptools' `packages` configuration.

          This leads to an ambiguous overall configuration. If you want to distribute this
          package, please make sure that 'aacgmv2.aacgm_coeffs' is explicitly added
          to the `packages` configuration field.

          Alternatively, you can also rely on setuptools' discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).

          You can read more about "package discovery" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

          If you don't want 'aacgmv2.aacgm_coeffs' to be distributed and are
          already explicitly excluding 'aacgmv2.aacgm_coeffs' via
          `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
          you can try to use `exclude_package_data`, or `include-package-data=False` in
          combination with a more fine grained `package-data` configuration.

          You can read more about "package data files" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


          [^1]: For Python, any directory (with suitable naming) can be imported,
                even if it does not contain any `.py` files.
                On the other hand, currently there is no concept of package data
                directory, all directories are treated like packages.
          ********************************************************************************

  !!
    check.warn(importable)
  C:\Users\Phillip\AppData\Local\Temp\pip-build-env-ep3lpome\overlay\Lib\site-packages\setuptools\command\build_py.py:201: _Warning: Package 'aacgmv2.tests' is absent from the `packages` configuration.
  !!

          ********************************************************************************
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'aacgmv2.tests' as an importable package[^1],
          but it is absent from setuptools' `packages` configuration.

          This leads to an ambiguous overall configuration. If you want to distribute this
          package, please make sure that 'aacgmv2.tests' is explicitly added
          to the `packages` configuration field.

          Alternatively, you can also rely on setuptools' discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).

          You can read more about "package discovery" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

          If you don't want 'aacgmv2.tests' to be distributed and are
          already explicitly excluding 'aacgmv2.tests' via
          `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
          you can try to use `exclude_package_data`, or `include-package-data=False` in
          combination with a more fine grained `package-data` configuration.

          You can read more about "package data files" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


          [^1]: For Python, any directory (with suitable naming) can be imported,
                even if it does not contain any `.py` files.
                On the other hand, currently there is no concept of package data
                directory, all directories are treated like packages.
          ********************************************************************************

  !!
    check.warn(importable)
  C:\Users\Phillip\AppData\Local\Temp\pip-build-env-ep3lpome\overlay\Lib\site-packages\setuptools\command\build_py.py:201: _Warning: Package 'aacgmv2.tests.environ' is absent from the `packages` configuration.
  !!

          ********************************************************************************
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'aacgmv2.tests.environ' as an importable package[^1],
          but it is absent from setuptools' `packages` configuration.

          This leads to an ambiguous overall configuration. If you want to distribute this
          package, please make sure that 'aacgmv2.tests.environ' is explicitly added
          to the `packages` configuration field.

          Alternatively, you can also rely on setuptools' discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).

          You can read more about "package discovery" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

          If you don't want 'aacgmv2.tests.environ' to be distributed and are
          already explicitly excluding 'aacgmv2.tests.environ' via
          `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
          you can try to use `exclude_package_data`, or `include-package-data=False` in
          combination with a more fine grained `package-data` configuration.

          You can read more about "package data files" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


          [^1]: For Python, any directory (with suitable naming) can be imported,
                even if it does not contain any `.py` files.
                On the other hand, currently there is no concept of package data
                directory, all directories are treated like packages.
          ********************************************************************************

  !!
    check.warn(importable)
  C:\Users\Phillip\AppData\Local\Temp\pip-build-env-ep3lpome\overlay\Lib\site-packages\setuptools\command\build_py.py:201: _Warning: Package 'aacgmv2.tests.test_data' is absent from the `packages` configuration.
  !!

          ********************************************************************************
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'aacgmv2.tests.test_data' as an importable package[^1],
          but it is absent from setuptools' `packages` configuration.

          This leads to an ambiguous overall configuration. If you want to distribute this
          package, please make sure that 'aacgmv2.tests.test_data' is explicitly added
          to the `packages` configuration field.

          Alternatively, you can also rely on setuptools' discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).

          You can read more about "package discovery" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

          If you don't want 'aacgmv2.tests.test_data' to be distributed and are
          already explicitly excluding 'aacgmv2.tests.test_data' via
          `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
          you can try to use `exclude_package_data`, or `include-package-data=False` in
          combination with a more fine grained `package-data` configuration.

          You can read more about "package data files" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


          [^1]: For Python, any directory (with suitable naming) can be imported,
                even if it does not contain any `.py` files.
                On the other hand, currently there is no concept of package data
                directory, all directories are treated like packages.
          ********************************************************************************

  !!
    check.warn(importable)
  copying aacgmv2\aacgmv2module.c -> build\lib.win-amd64-cpython-39\aacgmv2
  copying aacgmv2\igrf13coeffs.txt -> build\lib.win-amd64-cpython-39\aacgmv2
  copying aacgmv2\magmodel_1590-2020.txt -> build\lib.win-amd64-cpython-39\aacgmv2
  creating build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1590.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1595.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1600.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1605.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1610.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1615.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1620.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1625.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1630.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1635.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1640.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1645.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1650.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1655.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1660.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1665.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1670.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1675.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1680.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1685.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1690.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1695.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1700.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1705.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1710.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1715.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1720.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1725.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1730.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1735.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1740.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1745.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1750.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1755.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1760.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1765.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1770.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1775.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1780.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1785.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1790.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1795.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1800.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1805.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1810.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1815.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1820.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1825.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1830.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1835.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1840.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1845.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1850.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1855.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1860.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1865.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1870.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1875.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1880.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1885.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1890.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1895.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1900.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1905.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1910.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1915.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1920.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1925.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1930.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1935.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1940.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1945.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1950.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1955.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1960.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1965.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1970.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1975.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1980.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1985.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1990.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-1995.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-2000.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-2005.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-2010.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-2015.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-2020.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  copying aacgmv2\aacgm_coeffs\aacgm_coeffs-13-2025.asc -> build\lib.win-amd64-cpython-39\aacgmv2\aacgm_coeffs
  creating build\lib.win-amd64-cpython-39\aacgmv2\tests
  copying aacgmv2\tests\test_c_aacgmv2.py -> build\lib.win-amd64-cpython-39\aacgmv2\tests
  copying aacgmv2\tests\test_cmd_aacgmv2.py -> build\lib.win-amd64-cpython-39\aacgmv2\tests
  copying aacgmv2\tests\test_dep_aacgmv2.py -> build\lib.win-amd64-cpython-39\aacgmv2\tests
  copying aacgmv2\tests\test_py_aacgmv2.py -> build\lib.win-amd64-cpython-39\aacgmv2\tests
  copying aacgmv2\tests\test_struct_aacgmv2.py -> build\lib.win-amd64-cpython-39\aacgmv2\tests
  copying aacgmv2\tests\test_utils_aacgmv2.py -> build\lib.win-amd64-cpython-39\aacgmv2\tests
  creating build\lib.win-amd64-cpython-39\aacgmv2\tests\environ
  copying aacgmv2\tests\environ\test_environ_aacgmv2.py -> build\lib.win-amd64-cpython-39\aacgmv2\tests\environ
  creating build\lib.win-amd64-cpython-39\aacgmv2\tests\test_data
  copying aacgmv2\tests\test_data\test_convert.txt -> build\lib.win-amd64-cpython-39\aacgmv2\tests\test_data
  copying aacgmv2\tests\test_data\test_convert_mlt.txt -> build\lib.win-amd64-cpython-39\aacgmv2\tests\test_data
  copying aacgmv2\tests\test_data\test_convert_mlt_single_line.txt -> build\lib.win-amd64-cpython-39\aacgmv2\tests\test_data
  copying aacgmv2\tests\test_data\test_convert_single_line.txt -> build\lib.win-amd64-cpython-39\aacgmv2\tests\test_data
  running build_ext
  building 'aacgmv2._aacgmv2' extension
  error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for aacgmv2
Failed to build aacgmv2
ERROR: Could not build wheels for aacgmv2, which is required to install pyproject.toml-based projects

[notice] A new release of pip is available: 23.1.2 -> 23.2
[notice] To update, run: python.exe -m pip install --upgrade pip

(aliaa) C:\Users\Phillip\Documents\VirtualEnvironments>python.exe -m pip install --upgrade pip
Requirement already satisfied: pip in c:\users\phillip\documents\virtualenvironments\aliaa\lib\site-packages (23.1.2)
Collecting pip
Using cached pip-23.2-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 23.1.2
Uninstalling pip-23.1.2:
Successfully uninstalled pip-23.1.2
Successfully installed pip-23.2

(aliaa) C:\Users\Phillip\Documents\VirtualEnvironments>pip install --upgrade pip
Requirement already satisfied: pip in c:\users\phillip\documents\virtualenvironments\aliaa\lib\site-packages (23.2)

(aliaa) C:\Users\Phillip\Documents\VirtualEnvironments>pip install --upgrade setuptools
Requirement already satisfied: setuptools in c:\users\phillip\documents\virtualenvironments\aliaa\lib\site-packages (68.0.0)

(aliaa) C:\Users\Phillip\Documents\VirtualEnvironments>python --version
Python 3.9.0

************************************* END ERROR MESSAGE ********************************************

Add a zenodo.json file

Is your feature request related to a problem? Please describe.
When new people contribute, it can be difficult to get their information for the Zenodo DOI reference.

Describe the solution you'd like
Adding a zenodo.json file ensures all authors are correctly acknowledged. Follow the same structure as pysat/pysat#519.

Describe alternatives you've considered
The current alternative is for me to compile a list of affiliations and ORCiDs.

aacgmv2.convert_latlon_arr causes a memory leak

Describe the bug
aacgmv2.convert_latlon_arr causes a memory leak in the Python instance it is run in. For an array of 6000 points the memory leak seems to be 0.5 MB to 0.6 MB in size for each run. aacgmv2.convert_latlon (when run with the appropriate for loop to support it) does not seem to have the same memory leak issue.

gc.collect() cannot reclaim the memory. Killing the Python instance will reclaim the memory.

No experience with Python calling C so I can't offer any help, sadly.

To Reproduce

import numpy as np
import datetime
import aacgmv2

rando_lat = np.random.uniform(low=-90,high=90,size=6000);
rando_long = np.random.uniform(low=-180,high=180,size=6000);
for i in range(0,1000): #memory will fill up about ~500 MB from running aacgmv2.convert_latlon_arr over and over again
    _, _, _= aacgmv2.convert_latlon_arr(rando_lat, rando_long, 350., datetime.datetime(2015,5,5), method_code='G2A');
#END FOR i

for i in range(0,1000): #this one will not fill up memory
    for j in range(0,6000):
        _, _, _= aacgmv2.convert_latlon(rando_lat[j], rando_long[j], 350., datetime.datetime(2015,5,5), method_code='G2A');
    #END FOR j
#END FOR i

Expected behavior
No memory leak on aacgmv2.convert_latlon_arr

Desktop (please complete the following information):

  • OS: Windows 10 64-bit
  • Version Latest pip release (2.6.2)
  • Calling from Spyder

How to mute BELOW during the conversion?

It seems that "BELOW" would be printed out if accessing the forbidden area. The pure python code can't mute this. I have a batch processing with tqdm, and "BELOW" interrupts and duplicates the progress bar.

 62%|███████████████████████████                  | 4962/8036 [39:45<24:37,  2.08it/s]BELOW
BELOW
BELOW
 62%|███████████████████████████                  | 4965/8036 [39:47<24:36,  2.08it/s]BELOW
BELOW
 62%|███████████████████████████                  | 4967/8036 [39:47<24:35,  2.08it/s]BELOW
BELOW

I have no idea with how to comment printf of C source code and compile it then pack it into python package. "BELOW" also returns nan and I applied the interpolate to converting nans. Is it rational for the mapping the magnetic coordinate axis on geographic scale figures?

code to method_code parameter change not documented

Describe the bug
In the minor change from 2.5.1 to 2.5.2 you've changed the input parameter name in convert_latlon from 'code' to 'method_code'. This isn't in the documentation, nor is it in the changelog. It meant that the package I've developing which uses this function no longer works without me either updating it, or fixing the version of aacgmv2 to 2.5.1.

To Reproduce
Steps to reproduce the behavior:
pip install "aacgmv2==2.5.2"

import aacgmv2
aacgmv2.convert_latlon_arr([90, -90], 0, 0, dtime, code="A2G")

(Note this is the example from your docs. Will now return a Type Error convert_latlon_arr() got an unexpected keyword argument 'code')

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots or Figures
If applicable, add visual aids to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Version [e.g. 22]
  • Any details about your local setup that might be helpful in troubleshooting

Additional context
Add any other context about the problem here.

Will the parameter name stay as 'method_code' in future versions?

RuntimeError when using the package

Describe the bug
A RuntimeError can be raised when calling the package in PyCharm or VS code.

To Reproduce
The package usually works fine in Spyder. However, when I compile my codes in PyCharm or VS Code, a RuntimeError is sometimes raised due to the function " c_aacgmv2.set_datetime" in aacgmv2.wrapper.convert_latlon_arr cannot set the datetime.

This error does not always appear. Sometimes, I compile the codes in Spyder several times in advance. After that, my codes work fine in Pycharm and VS Code.

I'm not sure this issue is due to the aacgmv2 package or the IDEs.

Screenshots or Figures

File "/home/lcai/.conda/envs/geospacelab/lib/python3.8/site->packages/geospacelab/cs/_geo.py", line 396, in to_AACGM
lat[ind_dt], lon[ind_dt], r[ind_dt] = aacgm.convert_latlon_arr(in_lat=self.coords.lat[ind_dt],
File "/home/lcai/.conda/envs/geospacelab/lib/python3.8/site-packages/aacgmv2/wrapper.py", line 367, in convert_latlon_arr
raise RuntimeError("cannot set time for {:}: {:}".format(dtime, err))
RuntimeError: cannot set time for 2020-12-09 13:05:42.503096: AACGM_v2_SetDateTime returned error code -2

Desktop (please complete the following information):

  • OS: Ubuntu
  • Version 20.04
  • Anaconda + Python 3.8 or 3.9

ENH: vector transformation

Is your feature request related to a problem? Please describe.
@jcoxon informed me of some work Colin Waters had done to allow AACGM to do vector transformations between geodetic and magnetic coordinates.

Describe the solution you'd like
Add two functions for vector transformations: one that works on a single value, and another that works on an array of values.

Describe alternatives you've considered
Work with Simon to put the code in the C-code base.

Additional context
Seems easier to add this as a special option to the python package.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.