gnssrefl.quickplt module

gnssrefl.quickplt.main()
gnssrefl.quickplt.parse_arguments()
gnssrefl.quickplt.run_quickplt(filename: str, xcol: str, ycol: str, errorcol: int = None, mjd: bool = False, xlabel: str = None, ylabel: str = None, symbol: str = None, reverse: bool = False, title: str = None, outfile: str = None, xlimits: str = None, ylimits: float = [], ydoy: bool = False, ymd: bool = False, ymdhm: bool = False, filename2: str = None, freq: int = None, utc_offset: int = None, yoffset: float = None, keepzeros: bool = False, sat: str = None, yoffset2: float = None, scale: float = 1.0, scale2: float = 1.0, elimits: float = [0], azlimits: float = [0], plt: bool = True)

quick file plotting using matplotlib

A png file is saved as temp.png or to your preferred filename if outfile is given. In either case, it goes to REFL_CODE/Files

Allows you to set x and y-axis limits with a title and various axes labels, symbols etc.

Someone could easily update this to include different filetypes (e.g. jpeg)

I rewrote this recently to take advantage of our boolean argument translator. Let me know if things have broken or submit a PR.

To make simple plots of observables in SNR files, the x-axis can be either time or elevation. The latter is short for elevation angle. To pick this option set -sat to a specific satellite nubmer or a constellation (gps, glonass, etc). You can also set elimits and azlimits for simple elevation angle and azimuth angle limits. Only for SNR files, you can send the name of the SNR file without the directory, i.e. sc021500.22.snr66 instead of REFL_CODE/2022/snr/sc02/sc021500.22.snr66

You may submit a snr filename that has been gzipped. The code will checked to see if the gzip version is there and gunzip it for you. But this option does not exist for other kinds of files.

Examples

quickplt txtfile 1 16

would plot column 1 on the x-axis and column 16 on the y-axis

quickplt sc021500.22.snr66 time L1 -sat gps

would plot all the GPS L1 SNR data for the given SNR file, with time on the x-axis column 1 on the x-axis and SNR data on the y-axis You have to set -sat or it will not work. For a specific satellite number, provide that instead of gps. The other allowed x-axis option is elevation which is short for elevation angle.

quickplt txtfile 1 16 -xlabel Time

would plot column 1 on the x-axis and column 16 on the y-axis and add Time on the x-axis label

quickplt txtfile 1 16 -xlabel “Time (sec)”

would plot column 1 on the x-axis and column 16 on the y-axis and add Time (sec) on the x-axis label, but need quote marks since you have spaces in the x-axis labe.

quickplt txtfile 1 16 -reverse T

would plot column 1 on the x-axis and column 16 on the y-axis it would reverse the y-axis parameter as you might want if you are ploting RH but want it to have the same sense as a tide gauge.

quickplt txtfile 1 3 -errorcol 4

would plot error bars from column 4

quickplt txtfile 1 3 -errorcol 4 -ydoy T

would plot error bars from column 4 and assume columns 1 and 2 are year and day of year

quickplt txtfile 1 4 -mjd T

assume column 1 is modified julian day

quickplt txtfile 1 16 -ylimits 0 2

would restrict y-axis to be between 0 and 2

quickplt txtfile 1 16 -outfile myfile.png

would save png file to $REFL_CODE/Files/myfile.png

quickplt snrfile 4 7

Assuming you submitted a standard SNR file, it would plot the L1 data (column 7) vs time (seconds of the day in column 4). Zeroes would be removed, but you can toggle that to keep it.

quickplt snrfile 2 7

Assuming you submitted a standard SNR file, it would plot the L1 data (column 7) vs elevation angle (degrees in column 2).

quickplt snrfile 4 8 -sat 25

Assuming you submitted a standard SNR file, it would plot the data for satellite 25 for L2 data (column 8) vs time (seconds of the day in column 4).

quickplt snrfile 4 8 -sat 22

Assuming you submitted a standard SNR file, it would plot the data for Glonass satellite 22 for L2 data (column 8) vs time (seconds of the day in column 4).

Parameters:
  • filename (str) – name of file to be plotted

  • xcol (str) – column number in the file for the x-axis parameter for snrfiles, you can say time or elevation

  • ycol (str) – column number in the file for the y-axis parameter for snrfiles, you can say L1, L2, or L5

  • errorcol (int, optional) – column number for the error bars

  • mjd (bool, optional) – code will convert MJD to datetime (for xcol)

  • xlabel (str, optional) – label for x-axis

  • ylabel (str) – label for y-axis

  • symbol (str, optional) – prescribe the marker used in the plot . It can include the color, i.e. ‘b.’ or ‘b^’

  • reverse (bool, optional) – to reverse y-axis limits which is helpful for when you are showing RH results but want the tides to be shown.

  • title (str, optional) – title for plot

  • outfile (str, optional) – name of png file to store plot

  • xlimits (list of str,) – xaxis limits. if you selected any time options (ymd, mjd, ydoy,mjd), the code assumes a format of yyyyMMdd (year,month,day) for xlimits

  • ylimits (list of floats, optional) – yaxis limits

  • ydoy (bool, optional) – if columns 1 and 2 are year and doy, the x-axis will be plotted in obstimes you should select column 1 to plot

  • ymd (bool, optional) – if columns 1,2,3 are year, month, date. So meant for plots with daily measurements - not subdaily.

  • ymdhm (bool, optional) – if columns 1-5 are Y,M,D,H,M then x-axis will be plotted in obstimes

  • filename2 (str) – in principle this allows you to make plots from two files with identical formatting but I am not sure that it one hundred percent always works

  • freq (int, optional) – use column 11 to find (and extract) a single frequency

  • utc_offset (int, optional) – offset time axis by this number of hours (for local time) this only is used when the mjd option is used

  • yoffset (float) – add or subtract to the y-axis values

  • keepzeros (bool, optional) – keep/remove zeros, default is to remove

  • sat (str) – satellite number for SNR file plotting for all gps satellites, say gps instead of a number similar for glonass, galileo, and beidou

  • yoffset2 (float) – add or subtract to the y-axis values in filename2

  • scale (float) – multiply all y-axis values in file 1 by this value

  • scale2 (float) – multiply all y-axis values in file 2 by this value

  • elimits (list of floats) – if SNR file is plotted, elevation angle limits are applied

  • azlimits (list of floats) – if SNR file is plotted, azimuth angle limits are applied

  • plt (bool) – whether you want the plot to be displayed on the screen. png file is always created.