kristinemlarson / gnssrefl Goto Github PK
View Code? Open in Web Editor NEWGNSS Interferometric Reflectometry Software (GNSS-IR)
License: GNU General Public License v3.0
GNSS Interferometric Reflectometry Software (GNSS-IR)
License: GNU General Public License v3.0
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
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.
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.
Move docker container base image from earthscope gitlab to github to:
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
using https://gnssrefl.readthedocs.io/en/latest/api/gnssrefl.nmea2snr.html as an example, the API calls are listed alphabetically. This means the main drive code - gnssrefl.nmea2snr.run_nmea2snr - which would hopefully be at the top is not at the top. Is there any way that we can have the functions in nmea2snr.py show up as they are in the file instead of alphabetically?
The information here:
https://www.kristinelarson.net/designing-a-gps-reflections-site/
should be moved to the docs area on github. please make sure it is displayed in
both readthedocs and via standard README link.
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.
and make smoke tests (consolidating issues)
it should be similar to the way it is implemented in rinex2snr.
CDDIS provides 96 files per day for people that want high-rate RINEX files. Last year they
announced those 96 files will be zipped or gzipped (i do not remember which) after 6 months.
this means you will not be able to access highrate GNSS data from CDDIS unless a change is made.
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.
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
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.
documentation is missing for a few of the functions.
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
add clearer links to gnssrefl software package from https://gnss-reflections.org
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.
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.
Many of the use cases that showcase data archived at unavco now have dead links
to the unavco facility. If there is a new scenario for these station pages, the links should be fixed. If not,
they should be removed. Example:
https://www.unavco.org/instrumentation/networks/status/nota/overview/P475
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
Read the docs is not rending bulleted lists from markdown pages.
for example:
RTD: https://gnssrefl.readthedocs.io/en/latest/pages/new_station.html
source markdown: https://github.com/kristinemlarson/gnssrefl/blob/master/docs/pages/new_station.md
when type this "rinex2snr brst 2021 1" ,No SNR file was created - check logs section for additional information
https://gnssrefl.readthedocs.io/en/latest/
There is no link to utilities.
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).
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"
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:
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:
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.
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.
need to change fortran codes and the documentation.
new readthedocs build should be created for each version.
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'
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.
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:
Line 130 in a60e70b
Line 138 in a60e70b
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
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.
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
the code is currently on gnss-reflections.org
should be pretty easy to port
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.
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.
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.
kelly is working on this.
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.
downloads from the special archive need to be updated.
This should include both Rinex 2.11 and Rinex 3 examples.
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
https://gnssrefl.readthedocs.io/en/latest/pages/func_and_utils_doc.html
at a minimum it needs to have links/description for soil moisture and snow depth.
I think the figures on the bottom of the page are good - but they do not belong on this page.
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!!
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.
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).
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.
Please add your suggestions for changes to the web app here.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.