Map displayed on a plot

Hello all,

I am plotting satellite orbit files and it looks really nice to plot an Earth in the center with the continents on it to orient people to where the spacecraft is. Does anyway know how to do this? All I seem to be able to do is create a whole globe as the figure.

In this simple example:

from pylab import *

r = ndarray(40)

r[:] = 3.3

rad = linspace(0, 2*pi, 40)

figure()

subplot(111, polar=True)

plot(rad, r, lw=3)

draw()

wouldn’t it look great to have the earth plotted in the space up to 1.0 (as measured in earth radii)?

Thanks much,

Brian

···

Brian A. Larsen
Space Science and Applications
Group ISR-1
Los Alamos National Laboratory

PO Box 1663, MS-D466
Los Alamos, NM 87545
USA

(For overnight add:
SM-30, Bikini Atoll Road)

Phone: 505-665-7691
Fax: 505-665-7395
email: balarsen@…652…

Correspondence /
Technical data or Software Publicly Available

Have you checked out the basemap tool?

http://matplotlib.sourceforge.net/basemap/doc/html/

Ben Root

···

On Fri, Aug 27, 2010 at 12:11 PM, Brian Larsen <balarsen@…3254…> wrote:

Hello all,

I am plotting satellite orbit files and it looks really nice to plot an Earth in the center with the continents on it to orient people to where the spacecraft is. Does anyway know how to do this? All I seem to be able to do is create a whole globe as the figure.

In this simple example:

from pylab import *

r = ndarray(40)

r[:] = 3.3

rad = linspace(0, 2*pi, 40)

figure()

subplot(111, polar=True)

plot(rad, r, lw=3)

draw()

wouldn’t it look great to have the earth plotted in the space up to 1.0 (as measured in earth radii)?

Thanks much,

Brian

Sounds like you want the orthographic projection

or the 'near-sided perspective' projection

-Jeff

···

http://matplotlib.sourceforge.net/basemap/doc/html/users/ortho.html
http://www.scipy.org/Cookbook/Matplotlib/Maps

http://matplotlib.sourceforge.net/basemap/doc/html/users/nsper.html

-- Jeffrey S. Whitaker Phone : (303)497-6313
Meteorologist FAX : (303)497-6449
NOAA/OAR/PSD R/PSD1 Email : 325 Broadway Office : Skaggs Research Cntr 1D-113
Boulder, CO, USA 80303-3328 Web :

Jeffrey.S.Whitaker@…259…http://tinyurl.com/5telg

Ben,

I have but no where in there do I see (or at least understand) how to draw a map on top of a current figure with set bounds in data space…

Cheers,

Brian

···

On Aug 27, 2010, at 11:24 AM, Benjamin Root wrote:

On Fri, Aug 27, 2010 at 12:11 PM, Brian Larsen <balarsen@…652…> wrote:

Hello all,

I am plotting satellite orbit files and it looks really nice to plot an Earth in the center with the continents on it to orient people to where the spacecraft is. Does anyway know how to do this? All I seem to be able to do is create a whole globe as the figure.

In this simple example:

from pylab import *

r = ndarray(40)

r[:] = 3.3

rad = linspace(0, 2*pi, 40)

figure()

subplot(111, polar=True)

plot(rad, r, lw=3)

draw()

wouldn’t it look great to have the earth plotted in the space up to 1.0 (as measured in earth radii)?

Thanks much,

Brian

Have you checked out the basemap tool?

http://matplotlib.sourceforge.net/basemap/doc/html/

Ben Root

Brian A. Larsen
Space Science and Applications
Group ISR-1
Los Alamos National Laboratory

PO Box 1663, MS-D466
Los Alamos, NM 87545
USA

(For overnight add:
SM-30, Bikini Atoll Road)

Phone: 505-665-7691
Fax: 505-665-7395
email: balarsen@…652…

Correspondence /
Technical data or Software Publicly Available

Here is an example of the general usage for an orthographic projection.

def genMap(fig, ax, llcrnrlon,llcrnrlat,urcrnrlon,urcrnrlat):
fig.sca(ax)
m = Basemap(resolution=‘i’,projection=‘ortho’,lon_0=(urcrnrlon+llcrnrlon)/2,lat_0=(urcrnrlat+llcrnrlat)/2)

    m.drawcoastlines()
    m.drawmapboundary(fill_color='aqua')
    m.drawstates(linewidth=3)
    m.fillcontinents(color='coral',lake_color='aqua')
    m.drawcountries(linewidth=3)

where:
llcrnlon = lower left corner longitude
llcrnlat = lower left corner latitude
urcrnlon =upper right corner longitude
urcrnlat = upper right corner latitude

···

On Fri, Aug 27, 2010 at 1:39 PM, Brian Larsen <balarsen@…652…> wrote:

Ben,

I have but no where in there do I see (or at least understand) how to draw a map on top of a current figure with set bounds in data space…

Cheers,

Brian

On Aug 27, 2010, at 11:24 AM, Benjamin Root wrote:

On Fri, Aug 27, 2010 at 12:11 PM, Brian Larsen <balarsen@…652…> wrote:

Hello all,

I am plotting satellite orbit files and it looks really nice to plot an Earth in the center with the continents on it to orient people to where the spacecraft is. Does anyway know how to do this? All I seem to be able to do is create a whole globe as the figure.

In this simple example:

from pylab import *

r = ndarray(40)

r[:] = 3.3

rad = linspace(0, 2*pi, 40)

figure()

subplot(111, polar=True)

plot(rad, r, lw=3)

draw()

wouldn’t it look great to have the earth plotted in the space up to 1.0 (as measured in earth radii)?

Thanks much,

Brian

Have you checked out the basemap tool?

http://matplotlib.sourceforge.net/basemap/doc/html/

Ben Root

Brian A. Larsen
Space Science and Applications
Group ISR-1
Los Alamos National Laboratory

PO Box 1663, MS-D466
Los Alamos, NM 87545

USA

(For overnight add:
SM-30, Bikini Atoll Road)

Phone: 505-665-7691
Fax: 505-665-7395
email: balarsen@…652…

Correspondence /

Technical data or Software Publicly Available


Sell apps to millions through the Intel(R) Atom™ Developer Program

Be part of this innovative community and reach millions of netbook users

worldwide. Take advantage of special opportunities to increase revenue and

speed time-to-market. Join now, and jumpstart your future.

http://p.sf.net/sfu/intel-atom-d2d


Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Aman Thakral
B.Eng & Biosci, M.Eng Design

Ben,

    I have but no where in there do I see (or at least

understand) how to draw a map on top of a current figure with
set bounds in data space…

Cheers,

Brian

Brian: Something like this perhaps?

from pylab import *

from mpl_toolkits.basemap import Basemap

lons = linspace(0, 360, 361)

lats = 40.*ones(len(lons))

map = Basemap(projection='ortho',lon_0=270,lat_0=90.)

x,y = map(lons,lats)

map.plot(x,y,color='y')

map.bluemarble(scale=0.5)

show()

-Jeff
···

http://p.sf.net/sfu/intel-atom-d2d


Matplotlib-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/matplotlib-users

-- Jeffrey S. Whitaker Phone : (303)497-6313
Meteorologist FAX : (303)497-6449
NOAA/OAR/PSD R/PSD1 Email : 325 Broadway Office : Skaggs Research Cntr 1D-113
Boulder, CO, USA 80303-3328 Web :

Jeffrey.S.Whitaker@…259…http://tinyurl.com/5telg

Thanks, that a step, but how do I tell matplotlib where to then put this map? It needs to be on the current figure with the current axes but between 0 and 1 in radius.

Imagine this plot but the black circle instead contains a map of the earth as seen from space in the right viewing geometry.

http://plasmasphere.nasa.gov/models/gcpm_v22_eq_kp1.jpg

I can work out the geometry and all but putting the map in that black region has me baffled.

Brian

···

On Aug 27, 2010, at 11:52 AM, Aman Thakral wrote:

Here is an example of the general usage for an orthographic projection.

def genMap(fig, ax, llcrnrlon,llcrnrlat,urcrnrlon,urcrnrlat):
fig.sca(ax)
m = Basemap(resolution=‘i’,projection=‘ortho’,lon_0=(urcrnrlon+llcrnrlon)/2,lat_0=(urcrnrlat+llcrnrlat)/2)

    m.drawcoastlines()
    m.drawmapboundary(fill_color='aqua')
    m.drawstates(linewidth=3)
    m.fillcontinents(color='coral',lake_color='aqua')
    m.drawcountries(linewidth=3)

where:
llcrnlon = lower left corner longitude
llcrnlat = lower left corner latitude
urcrnlon =upper right corner longitude
urcrnlat = upper right corner latitude

On Fri, Aug 27, 2010 at 1:39 PM, Brian Larsen <balarsen@…652…> wrote:

Ben,

I have but no where in there do I see (or at least understand) how to draw a map on top of a current figure with set bounds in data space…

Cheers,

Brian

On Aug 27, 2010, at 11:24 AM, Benjamin Root wrote:

On Fri, Aug 27, 2010 at 12:11 PM, Brian Larsen <balarsen@…652…> wrote:

Hello all,

I am plotting satellite orbit files and it looks really nice to plot an Earth in the center with the continents on it to orient people to where the spacecraft is. Does anyway know how to do this? All I seem to be able to do is create a whole globe as the figure.

In this simple example:

from pylab import *

r = ndarray(40)

r[:] = 3.3

rad = linspace(0, 2*pi, 40)

figure()

subplot(111, polar=True)

plot(rad, r, lw=3)

draw()

wouldn’t it look great to have the earth plotted in the space up to 1.0 (as measured in earth radii)?

Thanks much,

Brian

Have you checked out the basemap tool?

http://matplotlib.sourceforge.net/basemap/doc/html/

Ben Root

Brian A. Larsen
Space Science and Applications
Group ISR-1
Los Alamos National Laboratory

PO Box 1663, MS-D466
Los Alamos, NM 87545

USA

(For overnight add:
SM-30, Bikini Atoll Road)

Phone: 505-665-7691
Fax: 505-665-7395
email: balarsen@…652…

Correspondence /

Technical data or Software Publicly Available


Sell apps to millions through the Intel(R) Atom™ Developer Program

Be part of this innovative community and reach millions of netbook users

worldwide. Take advantage of special opportunities to increase revenue and

speed time-to-market. Join now, and jumpstart your future.

http://p.sf.net/sfu/intel-atom-d2d


Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Aman Thakral
B.Eng & Biosci, M.Eng Design

Brian A. Larsen
Space Science and Applications
Group ISR-1
Los Alamos National Laboratory

PO Box 1663, MS-D466
Los Alamos, NM 87545
USA

(For overnight add:
SM-30, Bikini Atoll Road)

Phone: 505-665-7691
Fax: 505-665-7395
email: balarsen@…83…652…

Correspondence /
Technical data or Software Publicly Available

    Thanks, that a step, but how do I tell matplotlib where to

then put this map? It needs to be on the current figure with
the current axes but between 0 and 1 in radius.

    Imagine this plot but the black circle instead contains a map

of the earth as seen from space in the right viewing geometry.

http://plasmasphere.nasa.gov/models/gcpm_v22_eq_kp1.jpg

    I can work out the geometry and all but putting the map in

that black region has me baffled.

Brian

Brian:  You can make the basemap axes sit inside your other figure

by setting the axes limits manually. Even if you could figure out
exactly where to put it though - it will cover more than the black
region (the basemap axes will be square). Perhaps the axes
background can be set to be transparent - I don’t know for sure.

-Jeff
···

http://p.sf.net/sfu/intel-atom-d2d


Matplotlib-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/matplotlib-users

-- Jeffrey S. Whitaker Phone : (303)497-6313
Meteorologist FAX : (303)497-6449
NOAA/OAR/PSD R/PSD1 Email : 325 Broadway Office : Skaggs Research Cntr 1D-113
Boulder, CO, USA 80303-3328 Web :

Jeffrey.S.Whitaker@…259…http://tinyurl.com/5telg