vtsuperdarn / davitpy

DEPRECATED The DaViT Python project
http://vtsuperdarn.github.com/davitpy/
GNU General Public License v3.0
37 stars 59 forks source link

Satellite ground track #301

Closed ReedOnly closed 7 years ago

ReedOnly commented 7 years ago

Hi,

I would like to add a ground track for some polar satellites like DMSP and SWARM to the SuperDARN scans. I have located the relevant time and orbit from https://sscweb.gsfc.nasa.gov/cgi-bin/Locator_graphics.cgi.

Does anyone have any practical way of downloading lat, lon, alt and time for a pass for then being plotted on the superDARN scans? An example is like this by Goodwin, L. V., et al. (2015): screenshot from 2017-02-23 13 24 05

Ideally I want to plot the eletric field on top as well, but for now it's more important to get the orbit to see the exact location of the satellite for the time of the scan.

Regards, Kristian Reed

asreimer commented 7 years ago

Hey @ReedOnly. As you probably know, the map in the figure that you included could be reproduced using the plotFan command, except you wouldn't be able to include the satellite overplot.

Have a look at the code in the davitpy/pydarn/plotting/fan.py, specifically the overlayFan function: https://github.com/vtsuperdarn/davitpy/blob/master/davitpy/pydarn/plotting/fan.py#L476

overlayFan requires a basemap object, specifically the modified basemap object that we have in davitpy/utils/plotUtils.py https://github.com/vtsuperdarn/davitpy/blob/master/davitpy/utils/plotUtils.py#L28

As you know, basemap object include many basic plotting methods like plot, scatter, etc. So here's what you can do.

1) create a matplotlib figure and axis object 2) create the mapObj from davitpy and pass it the axis object you created 3) use overlayFan to plot the SuperDARN data you want to plot 4) use mapObj to plot the satellite track that you want to plot. If you want to pass latitudes and longitudes to the mapObj, make sure you use the latlon=True optional argument.

Here's an example for plotting lat lon data using basemap: http://matplotlib.org/basemap/users/examples.html

ReedOnly commented 7 years ago

Thanks, I got it to work now!