Skip to content

ValueError: cannot convert float NaN to integer #110

@ctwillson

Description

@ctwillson

I want to use keplerian2ecef to get satellite positions,however,it shows error" T0 = [datetime(1980, 1, 6) + timedelta(weeks=week) for week in weeks].
ValueError: cannot convert float NaN to intege"

import georinex as gr
import sys
import georinex.plots as grp
from matplotlib.pyplot import show
from georinex.keplerian import keplerian2ecef
try:
    import pymap3d as pm
except ImportError:
    pm = None
print(sys.version)
nav = gr.load("./data/BRDC00WRD_R_20221260000_01D_GN.rnx")

# grp.timeseries(nav)
# show()
svs = nav.sv.values
for sv in svs:
    if sv[0] == "S":
        lat, lon, alt = pm.ecef2geodetic(
            nav.sel(sv=sv)["X"].dropna(dim="time", how="all"),
            nav.sel(sv=sv)["Y"].dropna(dim="time", how="all"),
            nav.sel(sv=sv)["Z"].dropna(dim="time", how="all"),
        )

        if ((alt < 35.7e6) | (alt > 35.9e6)).any():
            logging.warning("unrealistic geostationary satellite altitudes")

        if ((lat < -1) | (lat > 1)).any():
            logging.warning("unrealistic geostationary satellite latitudes")

    elif sv[0] == "R":
        lat, lon, alt = pm.ecef2geodetic(
            nav.sel(sv=sv)["X"].dropna(dim="time", how="all"),
            nav.sel(sv=sv)["Y"].dropna(dim="time", how="all"),
            nav.sel(sv=sv)["Z"].dropna(dim="time", how="all"),
        )

        if ((alt < 19.0e6) | (alt > 19.4e6)).any():
            logging.warning("unrealistic GLONASS satellite altitudes")

        if ((lat < -67) | (lat > 67)).any():
            logging.warning("GLONASS inclination ~ 65 degrees")

    elif sv[0] == "G":
        ecef = keplerian2ecef(nav.sel(sv=sv))
        lat, lon, alt = pm.ecef2geodetic(*ecef)

        if ((alt < 19.4e6) | (alt > 21.0e6)).any():
            logging.warning("unrealistic GPS satellite altitudes")

        if ((lat < -57) | (lat > 57)).any():
            logging.warning("GPS inclination ~ 55 degrees")
    elif sv[0] == "E":
        ecef = keplerian2ecef(nav.sel(sv=sv))
        lat, lon, alt = pm.ecef2geodetic(*ecef)

        if ((alt < 23e6) | (alt > 24e6)).any():
            logging.warning("unrealistic Galileo satellite altitudes")

        if ((lat < -57) | (lat > 57)).any():
            logging.warning("Galileo inclination ~ 56 degrees")

    else:
        continue

Ephemeris like this

     3.05           N: GNSS NAV DATA    G: GPS              RINEX VERSION / TYPE
BNC 2.13.0          BKG Frankfurt       20220507 001902 UTC PGM / RUN BY / DATE
Concatenated RINEX files (9)                                COMMENT
                                                            END OF HEADER
G07 2022 05 06 00 00 00 3.217239864170e-04 5.684341886080e-13 0.000000000000e+00
     8.000000000000e+00 1.187500000000e+00 4.606620455660e-09-3.122333920780e+00
    -6.519258022310e-08 1.602555287540e-02 7.821246981620e-06 5.153665773390e+03
     4.320000000000e+05 2.421438694000e-08-1.557631989280e-01-2.104789018630e-07
     9.511318673290e-01 2.214687500000e+02-2.271997647470e+00-7.715678531840e-09
    -3.250135381180e-10 1.000000000000e+00 2.208000000000e+03 0.000000000000e+00
     2.000000000000e+00 0.000000000000e+00-1.117587089540e-08 8.000000000000e+00
     4.248180000000e+05 4.000000000000e+00                                      
G05 2022 05 06 00 00 00-8.079828694460e-05-1.364242052660e-12 0.000000000000e+00
     1.570000000000e+02-7.093750000000e+01 4.501258924070e-09 2.081511701720e-01
    -3.453344106670e-06 5.958021502010e-03 8.767470717430e-06 5.153718662260e+03
     4.320000000000e+05-2.048909664150e-08-2.297087023150e+00 2.048909664150e-08
     9.605837356880e-01 2.080625000000e+02 1.015547250280e+00-8.036049019410e-09
     1.235765760320e-10 1.000000000000e+00 2.208000000000e+03 0.000000000000e+00
     2.000000000000e+00 0.000000000000e+00-1.117587089540e-08 1.570000000000e+02
     4.295460000000e+05 4.000000000000e+00                                      
G06 2022 05 06 00 00 00 2.923775464300e-04 1.432454155290e-11 0.000000000000e+00
     7.600000000000e+01-7.490625000000e+01 4.070883854370e-09-2.213910507260e+00
    -3.771856427190e-06 2.603406319390e-03 4.682689905170e-06 5.153719142910e+03
     4.320000000000e+05-4.470348358150e-08 2.985543085520e+00 2.048909664150e-08
     9.872213746240e-01 3.044687500000e+02-8.647091098970e-01-7.836397846000e-09
    -4.464471677450e-11 1.000000000000e+00 2.208000000000e+03 0.000000000000e+00
     2.000000000000e+00 0.000000000000e+00 3.725290298460e-09 7.600000000000e+01
     4.248180000000e+05 4.000000000000e+00 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions