Giter VIP home page Giter VIP logo

gnssrefl's People

Contributors

caradag avatar cemalialtuntas avatar dnowacki-usgs avatar fgnievinski avatar k-enloe avatar kristinemlarson avatar makanakaregar avatar meanlowdrew avatar naoyakadota avatar purnelldj avatar raxod502 avatar sreeram-radhakrishnan avatar suruixie avatar tasmi avatar timdittmann 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  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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gnssrefl's Issues

refraction correction

gnssrefl has a simple refraction correction. We are happy to host better ones. Please submit a PR for such a model that operates on a station name (which could link to needed metadata).

Using RH limits that are too small.

the RH ranges used in gnssir (and set in make_json_input) should not be used to compensate for setting a poor mask. And using a small range makes the QC metrics very unreliable. I am changing the code so that it has to be at least 5 meters long (e.g. 1-6, 2-7). For tides, it often has to be much larger because the signal itself spans 5 meters at many sites. I will also modify the documentation so the documentation is clearer.

fix the smoke tests

allow smoke tests to include data from Earthscope - which requires using a password from 3/31
check that all files (e.g. refraction file, EGM96, station dB) needed are being loaded properly into the docker. put those checks in the smoke test.

date time format

Could you please reformat date and time in the result from "yyyy doy UTCtime (decimal hours)" into "yyyy-mm-dd HH:MM"

Thank you very much

Susilo

removing README and traditional help sections

It is impossible for me to maintain two sets of help files. Although the readthedocs version has issues, it is the vresion we would like you to use going forwards. I am removing the direct links for our codes from README.md.

I have asked Tim to look at the install instructions for the docker to make sure they are correct.

Kristine

invsnr -knot_space type error

A user has identified that the invsnr -knot_space argument throws a type error.

E.G.
invsnr tgmx 2022 55 ALL -knot_space 2.0
results in:

Traceback (most recent call last):
  File "/usr/local/bin/invsnr", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/dist-packages/gnssrefl/invsnr_cl.py", line 292, in main
    invsnr(**args)
  File "/usr/local/lib/python3.8/dist-packages/gnssrefl/invsnr_cl.py", line 282, in invsnr
    spline_functions.snr2spline(station, year, doy, azilims, elvlims, rhlims, precision, kdt, signal=signal,
  File "/usr/local/lib/python3.8/dist-packages/gnssrefl/spline_functions.py", line 747, in snr2spline
    knots = np.linspace(gbase + int(kdt/2), gbase + numdays*86400 - int(kdt/2), int(numdays*86400/kdt))
TypeError: unsupported operand type(s) for /: 'str' and 'int'

utils.py

documentation is missing for a few of the functions.

add more defaults

make_json_input could use station database as default. lat lon ht can be optional inputs

daily_avg could have some simple values for medfilter and minpoints and let users override them.

add smoke tests for NMEA files

to make sure we don't break the code. The command should be tested in software_tests in the main directory. I have four files we can use to test things. Let me know if you want access to them.

have gnssrefl pick the orbit file for you

GPS orbits are currently the default orbits use in rinex2snr. We could try to have it pick the best orbit for you
(i.e. multiGNSS if you have multiGNSS data and gps if you only have gps obs). it would require someone code up an assessment
of the RINEX header before picking up the orbit file. if someone does that, they should check to see if there are
any SNR data as well, as that assessment is currently triggered further downline.

new GPS satellite launch/healthy satellite transmission

update the L2C/L5 list to include the newest satellite

also should check that L1C is being properly extracted using gfzrnx

"According to GPS NANU 2023007 a new GPS BLOCK III A satellite was launched on 18. January 2023.

The GPS satellite started to transmit on the 31. January 2023. Therefore, following starting date has been added:

G28 (G079): 31. January 2023"

Add SWE module and advanced soil moisture modules to gnssrefl

Update April 4, 20223 : I am consolidating two issues here. Both are related to improvements to our environmental products. Originally this issue was only for SWE. The link to soil moisture issue is below. I am still willing to add an update for it, but am going to close it as a separate issue because it will not be done by our primary team. It will have to come from the community.

#50

gnssrefl is a python version of the code used in the PBO H2O project, https://gnss-reflections.org/maps. one of the products of that project was snow depth. We made a special effort to make a SWE product as well. We have that SWE code in matlab and it would make sense to port it to python to include it here. If someone from the cryo world would volunteer to do this port, I would happily provide the Matlab code. It is not terribly long or complicated code. It was written under the leadership of Eric Small, with an abandoned version in R written by James McCreight, and a Matlab version written by Mark Raleigh.

docker image feature request

from @fgnievinski

the docker image is configured to mount /etc/gnssrefl/refl_code/Files at:
C:\Users\fgnievinski\Documents\Docker\refl_code\Files

the whole Documents folder is backed up by default in Google Drive, MS OneDrive, etc.

so if the user downloads a year of rinex, they might be inadvertently keeping that in backup.

not sure if it's too late, but a better location might be directly the user home:
C:\Users\fgnievinski\Docker\refl_code\Files

All Capital Station Names and Outputs

I've had a community request to change how output files are changed based on whether the station is all capitals vs. all lowercase. There was a previous issue about snr files with capital station names not being recognized in the code after the snr files were created- and I believe that has been fixed (in both quickLook and gnssir). The output file definitions are done in other functions, so I will need to think about how to do this so it doesn't create chaos.

Soil Moisture code for sites with significant vegetation

Our current soil moisture module (vwc) is based on the operational PBO H2O model. This worked well in the grasslands and savannahs of the western U.S. These regions are generally categorized as semi-arid. We know this model fails for regions with vegetation water content of > 2kg/m/m. Clara Chew developed a better model for these more challenging sites. It was coded in Matlab - and could easily be ported to python. Let me know if you are interested in tackling this port. For details on Clara's work, you can look at https://www.kristinelarson.net/wp-content/uploads/2015/10/ChewSmallLarson2015_withoutFront.pdf

fix quickLook y-axis limits to be the same in all quadrants

a Community member has requested we make all the quadrant y-axis limits the same. These are created in a loop - so you don't know the correct limit til the end, but it should be possible to go back and fix them. If there are any matplotlib lovers out there, give it a try. otherwise I will do it.
image

simple metadata database

Both the water level and soil moisture applications require information about receivers/antennas. We need a simple way to keep track of this information. At a minimum, a json file could be created with records for time (str), antenna type, receiver type. Such a local database could query archive APIs if they are reliable.
First step would be to make a utility that creates a database (stored in the inputs area) given the station name and perhaps first record. it could then be updated by the user.

Significant Wave Height

We can clearly see the effects of significant wave height in GNSS data - it would be great to add a module that estimates this directly for the broader community. If you have such a model that has been tested out - and it is available in python, please think about donating it to gnssrefl via a PR. We could have it be a stand alone module rather than be added to gnssir.

Support GN/GL-prefixed NMEA strings

I have NMEA strings from a consumer-grade USB-serial GNSS receiver. It can receive from GPS, GLONASS, and Galileo satellites but outputs sentences with a variety of prefixes. Running nmea2snr currently fails since it checks only for GPGGA and GPGSV, not those with other prefixes:

if b"GPGGA" in line: #read GPGGA sentence: Global Positioning System Fix Data

elif b"GPGSV" in line: #read GPGSV sentence: GPS Satellites in view in this cycle

In testing, I was able to produce an SNR file with nmea2snr by changing these tests to if b"GGA" in line: and elif b"GSV" in line:

Happy to submit a PR if this seems useful, or would be grateful to see this change made in the code.

I'm including a sample NMEA output from this receiver below:

$GNRMC,000000.000,A,7123.1189,N,15627.6746,W,0.03,0.00,010922,,,D*6E
$GNVTG,0.00,T,,M,0.03,N,0.06,K,D*23
$GNGGA,000001.000,7123.1189,N,15627.6747,W,2,16,0.59,20.1,M,0.3,M,,*6A
$GNGLL,7123.1189,N,15627.6747,W,000001.000,A,D*52
$GPGSA,A,3,12,31,06,17,25,19,21,32,22,04,,,2.06,0.59,1.98*02
$GLGSA,A,3,87,79,69,85,78,71,,,,,,,2.06,0.59,1.98*1C
$GPGSV,4,1,14,03,69,178,24,22,37,070,44,31,37,097,42,19,36,281,40*72
$GPGSV,4,2,14,04,31,201,21,01,28,171,20,17,27,250,34,06,25,308,43*7C
$GPGSV,4,3,14,12,23,353,49,25,22,032,45,32,12,058,42,21,08,164,17*71
$GPGSV,4,4,14,44,05,139,28,09,02,220,21*70
$GLGSV,2,1,06,79,33,073,44,78,32,009,49,71,31,238,36,69,28,073,44*69
$GLGSV,2,2,06,85,28,197,26,87,26,334,45*61
$GNRMC,000001.000,A,7123.1189,N,15627.6747,W,0.02,0.00,010922,,,D*6F
$GNVTG,0.00,T,,M,0.02,N,0.03,K,D*27
$GNGGA,000002.000,7123.1189,N,15627.6747,W,2,15,0.61,20.1,M,0.3,M,,*61
$GNGLL,7123.1189,N,15627.6747,W,000002.000,A,D*51
$GPGSA,A,3,12,31,06,17,25,19,21,32,22,,,,1.08,0.61,0.90*09
$GLGSA,A,3,87,79,69,85,78,71,,,,,,,1.08,0.61,0.90*13
$GPGSV,4,1,14,03,69,178,24,22,37,070,44,31,37,097,42,19,36,281,40*72
$GPGSV,4,2,14,04,31,201,21,01,28,171,20,17,27,250,34,06,25,308,43*7C
$GPGSV,4,3,14,12,23,353,49,25,22,032,45,32,12,058,42,21,08,164,17*71
$GPGSV,4,4,14,44,05,139,28,09,02,220,17*75
$GLGSV,2,1,06,79,33,073,44,78,32,009,49,71,31,238,36,69,28,073,44*69
$GLGSV,2,2,06,85,28,197,26,87,26,334,46*62

azimuth limits in invsnr

I do not believe the invsnr code allows multipath azimuth regions. I could be wrong - it could be simply my implementation of the original code. If someone wants to work with that code, it is worth checking and/or updating.

Clarification on Phase Center Corrections

Hello! I haven’t had much luck in the documentation or papers in determining how phase center variations across multiple bands are or aren’t accounted for with this technique. (1) For example, for a given satellite arc, would we see two different RH estimates for the L1 and L2 bands, each producing a RH relative to the mean phase center of its given frequency? And (perhaps a harder question to answer): how much does the variability in electric phase center as a satellite rises and sets affect GNSS-IR, and are there ways we can preemptively apply antenna corrections such that all RHs are relative to the antenna reference point? Hopefully this makes sense… thank you for the clarification/support!!

Snow Depth

We do not currently produce "snow depth" products. The test cases and the refereed journal articles are cited instead. It would be helpful to add such a utility. It would not be difficult to put one together - it is simply a matter of picking a good definition for the non-snow (i.e. bare soil) surface and subtracting. Let me know if you are interested to do this. See the nwot use case for an example.

https://gnss-reflections.org suggestions

Please add your suggestions for changes to the web app here.

  1. in rzones, have the Fresnels toggle on and off
  2. in rzones, make the shading in the ellipses optional
  3. separate out the examples on the main page (these are now in the Info/Examples section).
  4. FAQ should be added to Info/Examples.
  5. Could toggle RINEX upload and RINEX archive sections. Does anyone have a strong opinion?

CDDIS sp3 file folders have changed

gnssrefl needs to be modified to accommodate CDDIS changes to their file structure for MGEX orbit files.it should check
the old directory and the new one. see getsp3file_mgex in gps.py

readthedocs docker instructions convert -- to en dash

On the rendered readthedocs docker instructions page, the code block for starting docker converts the two hyphens in front of the name argument to an en dash:

Screen Shot 2023-01-06 at 3 08 47 PM

After I realized the dash before name looked a little different than those in front of the other arguments, I inspected the original .md source and saw it should have been a double hyphen. GitHub renders the source correctly:

Screen Shot 2023-01-06 at 3 09 45 PM

Looking at the HTML source using dev tools shows this is a server-side issue and not a local rendering problem... but just in case, tested on latest Safari and Firefox on macOS 11.7.2.

Screen Shot 2023-01-06 at 3 11 22 PM

I suspect this is a readthedocs setting/issue/bug but wanted to let you know that it's a potential stumbling block for those trying to run the docker image.

Compilation failed with python3.10 but successful with 3.9

Hi,

I have tried to install gnssrefl on Fedora following your README_install.md and based on its github version.
Using Python 3.10.7, the compilation of gnssrefl fails as seen in the output below.

The solution was to create my environment using Python3.9 and the rest worked.
sudo dnf install python3.9 for Fedora or alternatively sudo apt-get install python3.9
python3.9 -m venv env to create your environment
source env/bin/activate to activate it

then
pip install wheel
pip install . compiles gnssrefl smoothly

Perhaps someone else got that problem?

Cheers,

Pierre

(env) [xxx@xxx gnssrefl]$ pip install wheel
Collecting wheel
  Downloading wheel-0.37.1-py2.py3-none-any.whl (35 kB)
Installing collected packages: wheel
Successfully installed wheel-0.37.1
WARNING: You are using pip version 21.3.1; however, version 22.3 is available.
You should consider upgrading via the '/home/xxx/gnssrefl/env/bin/python3 -m pip install --upgrade pip' command.
(env) [xxx@xxx gnssrefl]$ pip install .
Processing /home/xxx/gnssrefl
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting astropy
  Downloading astropy-5.1.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (11.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.0/11.0 MB 30.8 MB/s eta 0:00:00
Collecting scipy
  Downloading scipy-1.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (33.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 33.7/33.7 MB 27.8 MB/s eta 0:00:00
Collecting requests
  Downloading requests-2.28.1-py3-none-any.whl (62 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 7.4 MB/s eta 0:00:00
Collecting numpy
  Using cached numpy-1.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.1 MB)
Collecting progress
  Downloading progress-1.6.tar.gz (7.8 kB)
  Preparing metadata (setup.py) ... done
Collecting wget
  Downloading wget-3.2.zip (10 kB)
  Preparing metadata (setup.py) ... done
Collecting matplotlib
  Downloading matplotlib-3.6.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.8/11.8 MB 39.6 MB/s eta 0:00:00
Collecting pyerfa>=2.0
  Downloading pyerfa-2.0.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (743 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 743.2/743.2 kB 72.2 MB/s eta 0:00:00
Collecting packaging>=19.0
  Downloading packaging-21.3-py3-none-any.whl (40 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.8/40.8 kB 8.6 MB/s eta 0:00:00
Collecting PyYAML>=3.13
  Downloading PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (682 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 682.2/682.2 kB 21.3 MB/s eta 0:00:00
Collecting python-dateutil>=2.7
  Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 kB 45.6 MB/s eta 0:00:00
Collecting cycler>=0.10
  Downloading cycler-0.11.0-py3-none-any.whl (6.4 kB)
Collecting pillow>=6.2.0
  Downloading Pillow-9.3.0-cp310-cp310-manylinux_2_28_x86_64.whl (3.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 42.5 MB/s eta 0:00:00
Collecting kiwisolver>=1.0.1
  Downloading kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 70.0 MB/s eta 0:00:00
Collecting pyparsing>=2.2.1
  Downloading pyparsing-3.0.9-py3-none-any.whl (98 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.3/98.3 kB 20.6 MB/s eta 0:00:00
Collecting fonttools>=4.22.0
  Downloading fonttools-4.38.0-py3-none-any.whl (965 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 965.4/965.4 kB 72.0 MB/s eta 0:00:00
Collecting contourpy>=1.0.1
  Downloading contourpy-1.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (296 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 296.1/296.1 kB 45.3 MB/s eta 0:00:00
Collecting urllib3<1.27,>=1.21.1
  Downloading urllib3-1.26.12-py2.py3-none-any.whl (140 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.4/140.4 kB 28.5 MB/s eta 0:00:00
Collecting idna<4,>=2.5
  Downloading idna-3.4-py3-none-any.whl (61 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 14.0 MB/s eta 0:00:00
Collecting charset-normalizer<3,>=2
  Downloading charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
Collecting certifi>=2017.4.17
  Downloading certifi-2022.9.24-py3-none-any.whl (161 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 161.1/161.1 kB 18.1 MB/s eta 0:00:00
Collecting six>=1.5
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Building wheels for collected packages: gnssrefl, progress, wget
  Building wheel for gnssrefl (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for gnssrefl (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [406 lines of output]
      setup.py:2: DeprecationWarning:
      
        `numpy.distutils` is deprecated since NumPy 1.23.0, as a result
        of the deprecation of `distutils` itself. It will be removed for
        Python >= 3.12. For older Python versions it will remain present.
        It is recommended to use `setuptools < 60.0` for those Python versions.
        For more details, see:
          https://numpy.org/devdocs/reference/distutils_status_migration.html
      
      
        from numpy.distutils.core import setup, Extension
      running bdist_wheel
      running build
      running config_cc
      INFO: unifing config_cc, config, build_clib, build_ext, build commands --compiler options
      running config_fc
      INFO: unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
      running build_src
      INFO: build_src
      INFO: building extension "gnssrefl.gpssnr" sources
      INFO: f2py options: ['--verbose']
      INFO:   adding 'build/src.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl/fortranobject.c' to sources.
      INFO:   adding 'build/src.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl' to include_dirs.
      INFO:   adding 'build/src.linux-x86_64-3.10/gnssrefl/gpssnr-f2pywrappers.f' to sources.
      INFO: building extension "gnssrefl.gnsssnr" sources
      INFO: f2py options: ['--verbose']
      INFO:   adding 'build/src.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl/fortranobject.c' to sources.
      INFO:   adding 'build/src.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl' to include_dirs.
      INFO:   adding 'build/src.linux-x86_64-3.10/gnssrefl/gnsssnr-f2pywrappers.f' to sources.
      INFO: building extension "gnssrefl.gnsssnrbigger" sources
      INFO: f2py options: ['--verbose']
      INFO:   adding 'build/src.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl/fortranobject.c' to sources.
      INFO:   adding 'build/src.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl' to include_dirs.
      INFO:   adding 'build/src.linux-x86_64-3.10/gnssrefl/gnsssnrbigger-f2pywrappers.f' to sources.
      INFO: build_src: building npy-pkg config files
      running build_py
      creating build/lib.linux-x86_64-3.10
      creating build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/EGM96.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/__init__.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/cddis_highrate.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/check_gnss.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/check_rinex.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/check_rinex2.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/computemp1mp2.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/daily_avg.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/daily_avg_cl.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/download_ioc.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/download_orbits.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/download_rinex.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/download_simon.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/download_teqc.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/download_tides.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/download_unr.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/filesizes.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/gnssir.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/gnssir_cl.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/gps.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/gpsweek.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/installexe_cl.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/invsnr_cl.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/invsnr_input.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/karnak_libraries.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/llh2xyz.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/make_json_input.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/nmea2snr.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/nmea2snr_cl.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/phase_functions.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/plot_phase.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/plot_results.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/prn2gps.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/query_unr.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/quickLook.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/quickLook_cl.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/quickLook_function.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/quickPhase.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/quickPhase_function.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/read_snr_files.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/refraction.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/rinex2snr.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/rinex2snr_cl.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/rinex3_rinex2.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/rinex3_snr.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/rinpy.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/rnx2snr.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/spline_functions.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/subdaily.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/subdaily_cl.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/update_snr_files.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/utils.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/veg_multiyr.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/vwc.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/vwc_input.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/xyz2llh.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/ydoy.py -> build/lib.linux-x86_64-3.10/gnssrefl
      copying gnssrefl/ymd.py -> build/lib.linux-x86_64-3.10/gnssrefl
      running build_ext
      INFO: customize UnixCCompiler
      INFO: customize UnixCCompiler using build_ext
      INFO: CCompilerOpt.cc_test_flags[1073] : testing flags (-march=native)
      INFO: C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC
      
      creating /tmp/tmpr5nvn66_/tmp
      creating /tmp/tmpr5nvn66_/tmp/pip-build-env-h8vmvs_r
      creating /tmp/tmpr5nvn66_/tmp/pip-build-env-h8vmvs_r/overlay
      creating /tmp/tmpr5nvn66_/tmp/pip-build-env-h8vmvs_r/overlay/lib64
      creating /tmp/tmpr5nvn66_/tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10
      creating /tmp/tmpr5nvn66_/tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10/site-packages
      creating /tmp/tmpr5nvn66_/tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10/site-packages/numpy
      creating /tmp/tmpr5nvn66_/tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10/site-packages/numpy/distutils
      creating /tmp/tmpr5nvn66_/tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10/site-packages/numpy/distutils/checks
      INFO: compile options: '-I/home/xxx/gnssrefl/env/include -I/usr/include/python3.10 -c'
      extra options: '-march=native'
      INFO: CCompilerOpt.cc_test_flags[1073] : testing flags (-O3)
      INFO: C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC
      
[...]
      
      INFO: compile options: '-I/home/xxx/gnssrefl/env/include -I/usr/include/python3.10 -c'
      extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mno-mmx -mavx512cd -mavx512er -mavx512pf -Werror'
      WARN: CCompilerOpt.dist_test[630] : CCompilerOpt._dist_test_spawn[764] : Command (gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/home/xxx/gnssrefl/env/include -I/usr/include/python3.10 -c /tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_knl.c -o /tmp/tmpr5nvn66_/tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_knl.o -MMD -MF /tmp/tmpr5nvn66_/tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_knl.o.d -msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mno-mmx -mavx512cd -mavx512er -mavx512pf -Werror) failed with exit status 1 output ->
      In file included from /usr/lib/gcc/x86_64-redhat-linux/12/include/immintrin.h:51,
                       from /tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_knl.c:14:
      In function ‘_mm512_exp2a23_round_pd’,
          inlined from ‘main’ at /tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_knl.c:21:17:
      /usr/lib/gcc/x86_64-redhat-linux/12/include/avx512erintrin.h:55:20: error: ‘__W’ is used uninitialized [-Werror=uninitialized]
         55 |   return (__m512d) __builtin_ia32_exp2pd_mask ((__v8df) __A,
            |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         56 |                                                (__v8df) __W,
            |                                                ~~~~~~~~~~~~~
         57 |                                                (__mmask8) -1, __R);
            |                                                ~~~~~~~~~~~~~~~~~~~
      /usr/lib/gcc/x86_64-redhat-linux/12/include/avx512erintrin.h: In function ‘main’:
      /usr/lib/gcc/x86_64-redhat-linux/12/include/avx512erintrin.h:54:11: note: ‘__W’ was declared here
         54 |   __m512d __W;
            |           ^~~
      In file included from /usr/lib/gcc/x86_64-redhat-linux/12/include/immintrin.h:53:
      In function ‘_mm512_mask_prefetch_i64scatter_pd’,
          inlined from ‘main’ at /tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_knl.c:23:5:
      /usr/lib/gcc/x86_64-redhat-linux/12/include/avx512pfintrin.h:180:3: error: ‘base’ may be used uninitialized [-Werror=maybe-uninitialized]
        180 |   __builtin_ia32_scatterpfqpd (__mask, (__v8di) __index, __addr, __scale,
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        181 |                                __hint);
            |                                ~~~~~~~
      <built-in>: In function ‘main’:
      <built-in>: note: by argument 3 of type ‘const void *’ to ‘__builtin_ia32_scatterpfqpd’ declared here
      /tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10/site-packages/numpy/distutils/checks/cpu_avx512_knl.c:18:9: note: ‘base’ declared here
         18 |     int base[128];
            |         ^~~~
      cc1: all warnings being treated as errors
      
      WARN: CCompilerOpt.feature_test[1563] : testing failed
      INFO: CCompilerOpt.cc_test_flags[1073] : testing flags (-mavx512vl -mavx512bw -mavx512dq)
      INFO: C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC
      
      INFO: compile options: '-I/home/xxx/gnssrefl/env/include -I/usr/include/python3.10 -c'
      extra options: '-mavx512vl -mavx512bw -mavx512dq'
      INFO: CCompilerOpt.feature_test[1547] : testing feature 'AVX512_SKX' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mno-mmx -mavx512cd -mavx512vl -mavx512bw -mavx512dq)
      INFO: C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC
      
[...]
      
      INFO: compile options: '-I/home/xxx/gnssrefl/env/include -I/usr/include/python3.10 -c'
      extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mno-mmx -mavx512cd -mavx512vl -mavx512bw -mavx512dq -Werror'
      INFO: get_default_fcompiler: matching types: '['arm', 'gnu95', 'intel', 'lahey', 'pg', 'nv', 'absoft', 'nag', 'vast', 'compaq', 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor', 'fujitsu']'
      INFO: customize ArmFlangCompiler
      WARN: Could not locate executable armflang
      INFO: customize Gnu95FCompiler
      INFO: Found executable /usr/bin/gfortran
      INFO: customize Gnu95FCompiler
      INFO: customize Gnu95FCompiler using build_ext
      INFO: building 'gnssrefl.gpssnr' extension
      INFO: compiling C sources
      INFO: C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC
      
      creating build/temp.linux-x86_64-3.10/build
      creating build/temp.linux-x86_64-3.10/build/src.linux-x86_64-3.10
      creating build/temp.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl
      creating build/temp.linux-x86_64-3.10/build/src.linux-x86_64-3.10/build
      creating build/temp.linux-x86_64-3.10/build/src.linux-x86_64-3.10/build/src.linux-x86_64-3.10
      creating build/temp.linux-x86_64-3.10/build/src.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl
      INFO: compile options: '-Ibuild/src.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl -I/tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10/site-packages/numpy/core/include -Ibuild/src.linux-x86_64-3.10/numpy/distutils/include -I/home/xxx/gnssrefl/env/include -I/usr/include/python3.10 -c'
      extra options: '-msse -msse2 -msse3'
      INFO: gcc: build/src.linux-x86_64-3.10/gnssrefl/gpssnrmodule.c
      INFO: gcc: build/src.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl/fortranobject.c
      In file included from build/src.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl/fortranobject.c:2:
      build/src.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl/fortranobject.h:7:10: fatal error: Python.h: No such file or directory
          7 | #include <Python.h>
            |          ^~~~~~~~~~
      compilation terminated.
      build/src.linux-x86_64-3.10/gnssrefl/gpssnrmodule.c:18:10: fatal error: Python.h: No such file or directory
         18 | #include <Python.h>
            |          ^~~~~~~~~~
      compilation terminated.
      error: Command "gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Ibuild/src.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl -I/tmp/pip-build-env-h8vmvs_r/overlay/lib64/python3.10/site-packages/numpy/core/include -Ibuild/src.linux-x86_64-3.10/numpy/distutils/include -I/home/xxx/gnssrefl/env/include -I/usr/include/python3.10 -c build/src.linux-x86_64-3.10/gnssrefl/gpssnrmodule.c -o build/temp.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl/gpssnrmodule.o -MMD -MF build/temp.linux-x86_64-3.10/build/src.linux-x86_64-3.10/gnssrefl/gpssnrmodule.o.d -msse -msse2 -msse3" failed with exit status 1
      INFO:
      ########### EXT COMPILER OPTIMIZATION ###########
      INFO: Platform      :
        Architecture: x64
        Compiler    : gcc
      
      CPU baseline  :
        Requested   : 'min'
        Enabled     : SSE SSE2 SSE3
        Flags       : -msse -msse2 -msse3
        Extra checks: none
      
      CPU dispatch  :
        Requested   : 'max -xop -fma4'
        Enabled     : SSSE3 SSE41 POPCNT SSE42 AVX F16C FMA3 AVX2 AVX512F AVX512CD AVX512_SKX AVX512_CLX AVX512_CNL AVX512_ICL
        Generated   : none
      INFO: CCompilerOpt.cache_flush[857] : write cache to path -> /home/xxx/gnssrefl/build/temp.linux-x86_64-3.10/ccompiler_opt_cache_ext.py
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for gnssrefl
  Building wheel for progress (setup.py) ... done
  Created wheel for progress: filename=progress-1.6-py3-none-any.whl size=9632 sha256=233716da174c3d06de91d695fea9a93666e0406221ef174c7581bc48a6089410
  Stored in directory: /home/xxx/.cache/pip/wheels/c6/d5/4b/a9bd8a1bc5ebcf4c9cfe35795a5d859e15492f338d2d1a623a
  Building wheel for wget (setup.py) ... done
  Created wheel for wget: filename=wget-3.2-py3-none-any.whl size=9675 sha256=fc904d59e6f40154532ac2af92dcbb0ef7340ab38261b050e7d339cec4791661
  Stored in directory: /home/xxx/.cache/pip/wheels/46/78/0e/8e5e2b500f83a682c8d7e7ce820638cf99faa894a662f71cf0
Successfully built progress wget
Failed to build gnssrefl
ERROR: Could not build wheels for gnssrefl, which is required to install pyproject.toml-based projects

unphysical elevation angles in NMEA files

I am seeing suspicious elevation angles in the NMEA based SNR files, i.e. they are pegged to the same value for a very long time. Something worth looking into. It would not be difficult to use a sp3 based orbit for these multi-GNSS NMEA files.

provide Python scripts for use cases

A community member has requested we post python scripts so that users familiar with python can more easily use the code in an automated fashion. My current plan is to add examples for a lake, tides, snow, and soil moisture. And we will add function call examples to the docstrings in our main drivers (i.e. in readthedocs).

arcs crossing midnight

the code currently throws out arcs that cross midnight. this is easy enough to fix by tacking on the data from
the previous day (if it exists). if someone wants to take a stab at this, i can easily set out the method for you.

IGS orbits

The IGS has announced that they will change the name of their precise orbits later this month:

"This is a kindly reminder about the upcoming switch of the IGS products to IGS20/igs20.atx and repro3 standards as described in [IGSMAIL-8238] and [IGSMAIL-8256] starting from GPS week 2238, 27 November 2022."

gnssrefl allows people to use IGS precise orbits - but they are not our primary orbit source. We do not have the resources to maintain access to the IGS orbits. We would be happy to add it if you make a pull request.

Our preferred orbit sources are:
GPS only: the broadcast orbits downloaded from SOPAC or ESA

multi-GNSS: the ultra, rapid, and precise orbits from GFZ

refl_zones

refl_zones currently only allows you to set a min and max azimuth. This is fine a lot of the time, but could be much improved
if the code allowed a list of azimuth pairs, i.e. 0 90 270 360 would give you all the northern quadrants, and 0 90 180 270
would allow the NE and SW quadrants. You can see the current code for how to add an azlist (just check the elevation angle list) and then apply those azimuth limits in a slightly more complicated way when it is writing the kml file.

readthedocs

new readthedocs build should be created for each version.

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.