Re: [Matplotlib-users] plotting a colored symbol with plot command

2012-08-25 Thread Damon McDougall
On Fri, Aug 24, 2012 at 02:39:12PM -0700, Michael Rawlins wrote:
 
 
 
 
 
  From: Damon McDougall damon.mcdoug...@gmail.com
 To: Michael Rawlins rawlin...@yahoo.com 
 Cc: matplotlib-users@lists.sourceforge.net 
 matplotlib-users@lists.sourceforge.net 
 Sent: Friday, August 24, 2012 4:22 PM
 Subject: Re: [Matplotlib-users] plotting a colored symbol with plot command
  
 On Fri, Aug 24, 2012 at 09:20:47PM +0100, Damon McDougall wrote:

 plt.pyplot gives an error:
 
 AttributeError: 'module' object has no attribute 'pyplot'


Sorry, that's my mistake. It should be plt.plot

 
 If I use plt.plot(x, y, color='g', marker='.', markersize=3.0)
 
 the dots are black.

That should not happen... Have you tried some of the other colours? 'r',
'b', 'm', 'y', 'c'? Are they all black? What are you saving the file as? What
is the output of:

plt.get_backend()

 But I've found success with:
 
 plt.plot(x,y,'wo',markeredgecolor='white',markersize=3.0)
 
 so all is well. Thanks for your help.
 

-- 
Damon McDougall
http://www.damon-is-a-geek.com
B2.39
Mathematics Institute
University of Warwick
Coventry
West Midlands
CV4 7AL
United Kingdom

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Background basemaps in Basemap

2012-08-25 Thread Jeff Whitaker
On 8/24/12 10:20 PM, klo uo wrote:
 On Sat, Aug 25, 2012 at 1:26 AM, Jeff Whitaker wrote:
 Oh sure, it's simple!

 http://www.google.com/patents?id=J4YOEBAJdq=6618053
 Hi Jeff,

 thanks for your reply.

 I was hoping to get response if there are ideas how this unfortunate
 performance can be avoided. If there are some thoughts or if it's
 closed case.

Klo:  It's not a closed case - but I have no idea how to do it.  If 
you'd like to try to implement something, your contribution would be 
welcome.

 About GIS web-services, I thought maybe extending Basemap and
 providing interface to some of available online mapping services.
 For example arcgis is just one of them, and allows using their online
 map service to arbitrary application, while exposing REST
 (http://resources.arcgis.com/en/help/rest/apiref/index.html?mapserver.html)
 and SOAP service with full WSDL description
 (http://services.arcgisonline.com/ArcGIS/services/World_Imagery/MapServer?wsdl)
 and documentation. REST requests cover all of their services while
 SOAP is limited and a bit harder to code in this example. Services
 offer much more than it's needed to be paired in Basemap, as can be
 seen from documentation, with any imaginable projection and what not.

 As an example of using the service here is image: http://i.imgur.com/RpUFv.png
 and here is it's simple source code that executes unnoticeable in second:
 
import matplotlib.pyplot as plt
import urllib2

lon1 = -10; lon2 = 30; lat1 = 30; lat2 = 60
basemap_url =
 http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer/export?bbox=%d,%d,%d,%dbboxSR=4326size=1024,768dpi=128format=png32f=image;
 % (lon1, lat1, lon2, lat2)
overlay_url =
 https://ogcie.iblsoft.com/sigwx?SERVICE=WMSVERSION=1.3.0REQUEST=GetMapLAYERS=ASXXWIDTH=1024HEIGHT=768CRS=EPSG:4326BBOX=%d,%d,%d,%dTRANSPARENT=TRUESTYLES=FORMAT=image/png;
 % (lon1, lat1, lon2, lat2)

plt.figure(figsize=(8, 6), dpi=128, facecolor='w')
plt.imshow(plt.imread(urllib2.urlopen(basemap_url)))
plt.imshow(plt.imread(urllib2.urlopen(overlay_url)))
plt.gca().axison = False
plt.savefig(scene.png, dpi=128, transparent=True)
 

 As both basemap map and overlay image use same CRS, this seems
 doable with just MPL.

 Having such service paired in Basemap as a feature looks very
 promising to me. I don't know much about MPL and Basemap design, as if
 all above talk is easy and then acceptable for implementation, but
 that's roughly what I had in mind for web-services - as additional
 feature for replacing bloated background maps provided, which does not
 have such quality to justify low performance.
It looks like you are fetching an image over a specified region and 
displaying it with matplotlib.  That's very useful, but it doesn't solve 
the zooming problem you mentioned.  Still, it's a good start and would 
be nice to have in basemap.

Sorry for sounding so dismissive in my earlier reply.  How do you think 
web map services could be integrated into Basemap?  Do you see this 
mainly as a faster and more general alternative to the 'bluemarble' or 
'warpimage' methods, where you can specify a web map service and have 
the appropriate tile that fits the map projection region fetched and 
displayed automatically?

-Jeff


 Cheers

 --
 Live Security Virtual Conference
 Exclusive live event will cover all the ways today's security and
 threat landscape has changed and how IT managers can respond. Discussions
 will include endpoint security, mobile security and the latest in malware
 threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Background basemaps in Basemap

2012-08-25 Thread Benjamin Root
On Saturday, August 25, 2012, Jeff Whitaker wrote:

 On 8/24/12 10:20 PM, klo uo wrote:
  On Sat, Aug 25, 2012 at 1:26 AM, Jeff Whitaker wrote:
  Oh sure, it's simple!
 
  http://www.google.com/patents?id=J4YOEBAJdq=6618053
  Hi Jeff,
 
  thanks for your reply.
 
  I was hoping to get response if there are ideas how this unfortunate
  performance can be avoided. If there are some thoughts or if it's
  closed case.

 Klo:  It's not a closed case - but I have no idea how to do it.  If
 you'd like to try to implement something, your contribution would be
 welcome.
 
  About GIS web-services, I thought maybe extending Basemap and
  providing interface to some of available online mapping services.
  For example arcgis is just one of them, and allows using their online
  map service to arbitrary application, while exposing REST
  (
 http://resources.arcgis.com/en/help/rest/apiref/index.html?mapserver.html)
  and SOAP service with full WSDL description
  (
 http://services.arcgisonline.com/ArcGIS/services/World_Imagery/MapServer?wsdl
 )
  and documentation. REST requests cover all of their services while
  SOAP is limited and a bit harder to code in this example. Services
  offer much more than it's needed to be paired in Basemap, as can be
  seen from documentation, with any imaginable projection and what not.
 
  As an example of using the service here is image:
 http://i.imgur.com/RpUFv.png
  and here is it's simple source code that executes unnoticeable in second:
  
 import matplotlib.pyplot as plt
 import urllib2
 
 lon1 = -10; lon2 = 30; lat1 = 30; lat2 = 60
 basemap_url =
  
 http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer/export?bbox=%d,%d,%d,%dbboxSR=4326size=1024,768dpi=128format=png32f=image
 
  % (lon1, lat1, lon2, lat2)
 overlay_url =
  
 https://ogcie.iblsoft.com/sigwx?SERVICE=WMSVERSION=1.3.0REQUEST=GetMapLAYERS=ASXXWIDTH=1024HEIGHT=768CRS=EPSG:4326BBOX=%d,%d,%d,%dTRANSPARENT=TRUESTYLES=FORMAT=image/png
 
  % (lon1, lat1, lon2, lat2)
 
 plt.figure(figsize=(8, 6), dpi=128, facecolor='w')
 plt.imshow(plt.imread(urllib2.urlopen(basemap_url)))
 plt.imshow(plt.imread(urllib2.urlopen(overlay_url)))
 plt.gca().axison = False
 plt.savefig(scene.png, dpi=128, transparent=True)
  
 
  As both basemap map and overlay image use same CRS, this seems
  doable with just MPL.
 
  Having such service paired in Basemap as a feature looks very
  promising to me. I don't know much about MPL and Basemap design, as if
  all above talk is easy and then acceptable for implementation, but
  that's roughly what I had in mind for web-services - as additional
  feature for replacing bloated background maps provided, which does not
  have such quality to justify low performance.
 It looks like you are fetching an image over a specified region and
 displaying it with matplotlib.  That's very useful, but it doesn't solve
 the zooming problem you mentioned.  Still, it's a good start and would
 be nice to have in basemap.

 Sorry for sounding so dismissive in my earlier reply.  How do you think
 web map services could be integrated into Basemap?  Do you see this
 mainly as a faster and more general alternative to the 'bluemarble' or
 'warpimage' methods, where you can specify a web map service and have
 the appropriate tile that fits the map projection region fetched and
 displayed automatically?

 -Jeff


If I could chime in for a quick moment, perhaps one could consider a
specialized backend extension that would provide the web services
communication?  This way, when panning and zooming, the backend would know
the limits and fetch (and optionally cache) the requested tiles from the
connected service.

Mind you, I don't think this quite falls into the scope of the mpl or
Basemap project, but such a backend would be a powerful project on its own.

Cheers!
Ben Root
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] for a log y axis, set_major_formatter then twiny() removes the set_major_formatter

2012-08-25 Thread Damon McDougall
On Mon, Aug 20, 2012 at 09:13:10AM -0400, Michael Droettboom wrote:
 I've filed an issue for this here:
 
 https://github.com/matplotlib/matplotlib/issues/1110


I think I have sussed out what's going on here.

See PR: https://github.com/matplotlib/matplotlib/pull/1145

Basically, on creating a new Axes object, if a shared axes was passed
in, a copy of the current axes scale is executed. This overwrites the
current formatter.

 
 Mike
 
 On 08/19/2012 05:55 PM, Eric Firing wrote:
 On 2012/08/19 10:31 AM, Christopher Graves wrote:
 Hi
 
 
 I do not think this is the expected behavior. First, run the following:
 
 
 from pylab import *
 
 plot([0,3],[0.2,0.7])
 
 ax1 = gca()
 
 ax1.set_yscale('log')
 
 gca().yaxis.set_major_formatter(FormatStrFormatter('$%g$'))
 
 #ax2 = ax1.twiny()
 
 #ax2.set_xlim(ax1.get_xlim())
 
 show()
 
 
 You will see that the y-axis is log10rithmic and axis labels are 0.1 and
 1 rather than 10^-1 and 10^0, due to the use of set_major_formatter().
 
 
 Now uncomment the 2 commented lines and run it again. It seems that upon
 applying a twiny(), the set_major_formatter() action is removed and the
 y-axis is now displayed as 10^-1 and 10^0. Or more likely, the y-axis is
 overwritten with a new y-axis present in ax2. One can add another
 gca().yaxis.set_major_formatter(FormatStrFormatter('$%g$')) before the
 show() and it works as intended. However, it seems like unexpected
 behavior to lose the formatting when twinning the axis to add a
 secondary x-axis. Any advice or agreement that this could be a bug?
 Yes, I think this is a bug.
 
 Eric
 
 
 Best,
 
 Chris
 
 
 --
 Live Security Virtual Conference
 Exclusive live event will cover all the ways today's security and
 threat landscape has changed and how IT managers can respond. Discussions
 will include endpoint security, mobile security and the latest in malware
 threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users
 

 --
 Live Security Virtual Conference
 Exclusive live event will cover all the ways today's security and 
 threat landscape has changed and how IT managers can respond. Discussions 
 will include endpoint security, mobile security and the latest in malware 
 threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/

 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users


-- 
Damon McDougall
http://www.damon-is-a-geek.com
B2.39
Mathematics Institute
University of Warwick
Coventry
West Midlands
CV4 7AL
United Kingdom

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] plotting a colored symbol with plot command

2012-08-25 Thread Michael Rawlins





 From: Damon McDougall damon.mcdoug...@gmail.com
To: Michael Rawlins rawlin...@yahoo.com 
Cc: matplotlib-users@lists.sourceforge.net 
matplotlib-users@lists.sourceforge.net 
Sent: Saturday, August 25, 2012 4:21 AM
Subject: Re: [Matplotlib-users] plotting a colored symbol with plot command
 
On Fri, Aug 24, 2012 at 02:39:12PM -0700, Michael Rawlins wrote:
 
 
 
 
 
  From: Damon McDougall damon.mcdoug...@gmail.com
 To: Michael Rawlins rawlin...@yahoo.com 
 Cc: matplotlib-users@lists.sourceforge.net 
 matplotlib-users@lists.sourceforge.net 
 Sent: Friday, August 24, 2012 4:22 PM
 Subject: Re: [Matplotlib-users] plotting a colored symbol with plot command
  
 On Fri, Aug 24, 2012 at 09:20:47PM +0100, Damon McDougall wrote:

 
 If I use plt.plot(x, y, color='g', marker='.', markersize=3.0)
 
 the dots are black.

That should not happen... Have you tried some of the other colours? 'r',
'b', 'm', 'y', 'c'? Are they all black? What are you saving the file as? What
is the output of:

plt.get_backend()


Yes I've tried several. All produce black dots. The output of that command is 
'agg'.  I use:

plt.savefig('map.eps')

to produce eps images.




-- 
Damon McDougall
http://www.damon-is-a-geek.com
B2.39
Mathematics Institute
University of Warwick
Coventry
West Midlands
CV4 7AL
United Kingdom--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] plotting a colored symbol with plot command

2012-08-25 Thread Damon McDougall
On Sat, Aug 25, 2012 at 07:59:52AM -0700, Michael Rawlins wrote:
 
  From: Damon McDougall damon.mcdoug...@gmail.com
 To: Michael Rawlins rawlin...@yahoo.com 
 Cc: matplotlib-users@lists.sourceforge.net 
 matplotlib-users@lists.sourceforge.net 
 Sent: Saturday, August 25, 2012 4:21 AM
 Subject: Re: [Matplotlib-users] plotting a colored symbol with plot command
  
 On Fri, Aug 24, 2012 at 02:39:12PM -0700, Michael Rawlins wrote:
  
   From: Damon McDougall damon.mcdoug...@gmail.com
  To: Michael Rawlins rawlin...@yahoo.com 
  Cc: matplotlib-users@lists.sourceforge.net 
  matplotlib-users@lists.sourceforge.net 
  Sent: Friday, August 24, 2012 4:22 PM
  Subject: Re: [Matplotlib-users] plotting a colored symbol with plot command
   
  On Fri, Aug 24, 2012 at 09:20:47PM +0100, Damon McDougall wrote:
 
  
  If I use plt.plot(x, y, color='g', marker='.', markersize=3.0)
  
  the dots are black.
 
 That should not happen... Have you tried some of the other colours? 'r',
 'b', 'm', 'y', 'c'? Are they all black? What are you saving the file as? What
 is the output of:
 
 plt.get_backend()
 
 
 Yes I've tried several. All produce black dots. The output of that command is 
 'agg'.  I use:
 
 plt.savefig('map.eps')
 
 to produce eps images.
 

Bizarre. I am still seeing green dots.

Could you provide a very minimal example for which you see black dots?
It'd be nice to understand what's going on.

Also, what's the output of

import matplotlib
print matplotlib.__version__

Thanks.

-- 
Damon McDougall
http://www.damon-is-a-geek.com
B2.39
Mathematics Institute
University of Warwick
Coventry
West Midlands
CV4 7AL
United Kingdom

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] plotting a colored symbol with plot command

2012-08-25 Thread Warren Weckesser
On Sat, Aug 25, 2012 at 9:59 AM, Michael Rawlins rawlin...@yahoo.comwrote:



   --
 *From:* Damon McDougall damon.mcdoug...@gmail.com
 *To:* Michael Rawlins rawlin...@yahoo.com
 *Cc:* matplotlib-users@lists.sourceforge.net 
 matplotlib-users@lists.sourceforge.net
 *Sent:* Saturday, August 25, 2012 4:21 AM
 *Subject:* Re: [Matplotlib-users] plotting a colored symbol with plot
 command

 On Fri, Aug 24, 2012 at 02:39:12PM -0700, Michael Rawlins wrote:
 
 
 
 
  
   From: Damon McDougall damon.mcdoug...@gmail.com
  To: Michael Rawlins rawlin...@yahoo.com
  Cc: matplotlib-users@lists.sourceforge.net 
 matplotlib-users@lists.sourceforge.net
  Sent: Friday, August 24, 2012 4:22 PM
  Subject: Re: [Matplotlib-users] plotting a colored symbol with plot
 command
 
  On Fri, Aug 24, 2012 at 09:20:47PM +0100, Damon McDougall wrote:

 
  If I use plt.plot(x, y, color='g', marker='.', markersize=3.0)
 
  the dots are black.

 That should not happen... Have you tried some of the other colours? 'r',
 'b', 'm', 'y', 'c'? Are they all black? What are you saving the file as?
 What
 is the output of:

 plt.get_backend()


 Yes I've tried several. All produce black dots. The output of that command
 is 'agg'.  I use:

 plt.savefig('map.eps')

 to produce eps images.



The default 'markeredgecolor' (or 'mec') is black, and with small dots, you
will see more edge color than face color.  To test this, create the same
plot but with an exaggerated marker size, e.g. markersize=30.  If that is
the problem, you can fix it by also setting the edge color to green, e.g.
mec='g'.

Warren


[Sending to the list this time--forgot to reply to all the first time.]






 --
 Damon McDougall
 http://www.damon-is-a-geek.com
 B2.39
 Mathematics Institute
 University of Warwick
 Coventry
 West Midlands
 CV4 7AL
 United Kingdom




 --
 Live Security Virtual Conference
 Exclusive live event will cover all the ways today's security and
 threat landscape has changed and how IT managers can respond. Discussions
 will include endpoint security, mobile security and the latest in malware
 threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Background basemaps in Basemap

2012-08-25 Thread Jeff Whitaker

On 8/25/12 7:53 AM, Benjamin Root wrote:



On Saturday, August 25, 2012, Jeff Whitaker wrote:

On 8/24/12 10:20 PM, klo uo wrote:
 On Sat, Aug 25, 2012 at 1:26 AM, Jeff Whitaker wrote:
 Oh sure, it's simple!

 http://www.google.com/patents?id=J4YOEBAJdq=6618053
 Hi Jeff,

 thanks for your reply.

 I was hoping to get response if there are ideas how this unfortunate
 performance can be avoided. If there are some thoughts or if it's
 closed case.

Klo:  It's not a closed case - but I have no idea how to do it.  If
you'd like to try to implement something, your contribution would be
welcome.

 About GIS web-services, I thought maybe extending Basemap and
 providing interface to some of available online mapping services.
 For example arcgis is just one of them, and allows using their
online
 map service to arbitrary application, while exposing REST

(http://resources.arcgis.com/en/help/rest/apiref/index.html?mapserver.html)
 and SOAP service with full WSDL description


(http://services.arcgisonline.com/ArcGIS/services/World_Imagery/MapServer?wsdl)
 and documentation. REST requests cover all of their services while
 SOAP is limited and a bit harder to code in this example. Services
 offer much more than it's needed to be paired in Basemap, as can be
 seen from documentation, with any imaginable projection and what
not.

 As an example of using the service here is image:
http://i.imgur.com/RpUFv.png
 and here is it's simple source code that executes unnoticeable
in second:
 
import matplotlib.pyplot as plt
import urllib2

lon1 = -10; lon2 = 30; lat1 = 30; lat2 = 60
basemap_url =


http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer/export?bbox=%d,%d,%d,%dbboxSR=4326size=1024,768dpi=128format=png32f=image;
 % (lon1, lat1, lon2, lat2)
overlay_url =


https://ogcie.iblsoft.com/sigwx?SERVICE=WMSVERSION=1.3.0REQUEST=GetMapLAYERS=ASXXWIDTH=1024HEIGHT=768CRS=EPSG:4326BBOX=%d,%d,%d,%dTRANSPARENT=TRUESTYLES=FORMAT=image/png;
 % (lon1, lat1, lon2, lat2)

plt.figure(figsize=(8, 6), dpi=128, facecolor='w')
plt.imshow(plt.imread(urllib2.urlopen(basemap_url)))
plt.imshow(plt.imread(urllib2.urlopen(overlay_url)))
plt.gca().axison = False
plt.savefig(scene.png, dpi=128, transparent=True)
 

 As both basemap map and overlay image use same CRS, this seems
 doable with just MPL.

 Having such service paired in Basemap as a feature looks very
 promising to me. I don't know much about MPL and Basemap design,
as if
 all above talk is easy and then acceptable for implementation, but
 that's roughly what I had in mind for web-services - as additional
 feature for replacing bloated background maps provided, which
does not
 have such quality to justify low performance.
It looks like you are fetching an image over a specified region and
displaying it with matplotlib.  That's very useful, but it doesn't
solve
the zooming problem you mentioned.  Still, it's a good start and would
be nice to have in basemap.

Sorry for sounding so dismissive in my earlier reply.  How do you
think
web map services could be integrated into Basemap?  Do you see this
mainly as a faster and more general alternative to the 'bluemarble' or
'warpimage' methods, where you can specify a web map service and have
the appropriate tile that fits the map projection region fetched and
displayed automatically?

-Jeff


If I could chime in for a quick moment, perhaps one could consider a 
specialized backend extension that would provide the web services 
communication?  This way, when panning and zooming, the backend would 
know the limits and fetch (and optionally cache) the requested tiles 
from the connected service.


Mind you, I don't think this quite falls into the scope of the mpl or 
Basemap project, but such a backend would be a powerful project on its 
own.


Cheers!
Ben Root


Maybe such a thing could be built using owslib?

http://geopython.github.com/OWSLib/

-Jeff
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Background basemaps in Basemap

2012-08-25 Thread Jeff Whitaker

On 8/25/12 9:50 AM, Jeff Whitaker wrote:

On 8/25/12 7:53 AM, Benjamin Root wrote:



On Saturday, August 25, 2012, Jeff Whitaker wrote:

On 8/24/12 10:20 PM, klo uo wrote:
 On Sat, Aug 25, 2012 at 1:26 AM, Jeff Whitaker wrote:
 Oh sure, it's simple!

 http://www.google.com/patents?id=J4YOEBAJdq=6618053
 Hi Jeff,

 thanks for your reply.

 I was hoping to get response if there are ideas how this
unfortunate
 performance can be avoided. If there are some thoughts or if it's
 closed case.

Klo:  It's not a closed case - but I have no idea how to do it.  If
you'd like to try to implement something, your contribution would be
welcome.

 About GIS web-services, I thought maybe extending Basemap and
 providing interface to some of available online mapping services.
 For example arcgis is just one of them, and allows using their
online
 map service to arbitrary application, while exposing REST

(http://resources.arcgis.com/en/help/rest/apiref/index.html?mapserver.html)
 and SOAP service with full WSDL description


(http://services.arcgisonline.com/ArcGIS/services/World_Imagery/MapServer?wsdl)
 and documentation. REST requests cover all of their services while
 SOAP is limited and a bit harder to code in this example. Services
 offer much more than it's needed to be paired in Basemap, as can be
 seen from documentation, with any imaginable projection and
what not.

 As an example of using the service here is image:
http://i.imgur.com/RpUFv.png
 and here is it's simple source code that executes unnoticeable
in second:
 
import matplotlib.pyplot as plt
import urllib2

lon1 = -10; lon2 = 30; lat1 = 30; lat2 = 60
basemap_url =


http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer/export?bbox=%d,%d,%d,%dbboxSR=4326size=1024,768dpi=128format=png32f=image;
 % (lon1, lat1, lon2, lat2)
overlay_url =


https://ogcie.iblsoft.com/sigwx?SERVICE=WMSVERSION=1.3.0REQUEST=GetMapLAYERS=ASXXWIDTH=1024HEIGHT=768CRS=EPSG:4326BBOX=%d,%d,%d,%dTRANSPARENT=TRUESTYLES=FORMAT=image/png;
 % (lon1, lat1, lon2, lat2)

plt.figure(figsize=(8, 6), dpi=128, facecolor='w')
plt.imshow(plt.imread(urllib2.urlopen(basemap_url)))
plt.imshow(plt.imread(urllib2.urlopen(overlay_url)))
plt.gca().axison = False
plt.savefig(scene.png, dpi=128, transparent=True)
 

 As both basemap map and overlay image use same CRS, this seems
 doable with just MPL.

 Having such service paired in Basemap as a feature looks very
 promising to me. I don't know much about MPL and Basemap
design, as if
 all above talk is easy and then acceptable for implementation, but
 that's roughly what I had in mind for web-services - as additional
 feature for replacing bloated background maps provided, which
does not
 have such quality to justify low performance.
It looks like you are fetching an image over a specified region and
displaying it with matplotlib.  That's very useful, but it
doesn't solve
the zooming problem you mentioned.  Still, it's a good start and
would
be nice to have in basemap.

Sorry for sounding so dismissive in my earlier reply.  How do you
think
web map services could be integrated into Basemap?  Do you see this
mainly as a faster and more general alternative to the
'bluemarble' or
'warpimage' methods, where you can specify a web map service and have
the appropriate tile that fits the map projection region fetched and
displayed automatically?

-Jeff


If I could chime in for a quick moment, perhaps one could consider a 
specialized backend extension that would provide the web services 
communication?  This way, when panning and zooming, the backend would 
know the limits and fetch (and optionally cache) the requested tiles 
from the connected service.


Mind you, I don't think this quite falls into the scope of the mpl or 
Basemap project, but such a backend would be a powerful project on 
its own.


Cheers!
Ben Root


Maybe such a thing could be built using owslib?

http://geopython.github.com/OWSLib/

-Jeff


tilecache.org looks relevant too.

-Jeff





--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/


___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net

Re: [Matplotlib-users] Background basemaps in Basemap

2012-08-25 Thread klo uo
On Sat, Aug 25, 2012 at 3:24 PM, Jeff Whitaker jsw...@fastmail.fm wrote:
 It looks like you are fetching an image over a specified region and
 displaying it with matplotlib. That's very useful, but it doesn't solve
 the zooming problem you mentioned.  Still, it's a good start and would
 be nice to have in basemap.

Yes, I was thinking about fetching image resource only. I should have
probably fetched more detailed and smaller region that would
demonstrate superiority over Basemap bitmaps quality and performance,
as I mentioned zooming problem in a context of very high memory usage
while provided image is with low detail compared to what's potentially
possible.

 Sorry for sounding so dismissive in my earlier reply.  How do you think
 web map services could be integrated into Basemap?  Do you see this
 mainly as a faster and more general alternative to the 'bluemarble' or
 'warpimage' methods, where you can specify a web map service and have
 the appropriate tile that fits the map projection region fetched and
 displayed automatically?

Exactly - as function to Basemap class that could be called as
bluemarble() or shadedrelief() etc. on previously defined projection.
Export Map (http://atlas.resources.ca.gov/arcgis/SDK/REST/export.html)
seems like only function needed, but more knowledge about Basemap is
needed, as my main problem with it is fitting projections right. I
tried to overlay arcgis map over some Basemap projections like:

  m=Basemap(...)
  m.imshow(arcgis_map)
  m.drawcoastlines()

But it never fits, and also aspect ratio should be considered.

And same scheme for potentially other mapping webservices, as
functions to Basemap class...

Also for reference here are maps available to arcgis service:
http://server.arcgisonline.com/ArcGIS/rest/services

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Background basemaps in Basemap

2012-08-25 Thread klo uo
On Sat, Aug 25, 2012 at 5:57 PM, Jeff Whitaker wrote:

 tilecache.org looks relevant too.


This is like more advanced, on a higher level. I imagine if you plan
to add some interaction to Basemap, it would be fantastic, to say at
least.

While reading Google patent you linked the other day, I came also to
this link: 
http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection
It was mentioned as a advanced feature to some server providing WMS capabilities

Also, already mentioned GIS webservices IMHO provide interface to
their caching/tiling mechanisms, but if there is backend to hold this
feature in MPL/Basemap I have no idea.

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] How to get daily digest feature to work?

2012-08-25 Thread Ely Spears
I have the digest option enabled in my matplotlib mailing list options.
However, I still receive between 5 and 10 mailing list messages per day,
sometimes more.

Is there any way to change a setting to ensure that I can only ever receive
exactly one message from the mailing list per day, with the entire day's
entries included?

Thanks,

Ely
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Background basemaps in Basemap

2012-08-25 Thread klo uo
On Sat, Aug 25, 2012 at 5:50 PM, Jeff Whitaker wrote:

 Maybe such a thing could be built using owslib?

 http://geopython.github.com/OWSLib/

This is interesting. I didn't know about this module

Using either simple REST (urllib) to access webservices or depend on
additional module which exposes all kinds of services capabilities,
that are not just basemaps, but services which are used to interface
many public data through XML communication, that are potentially
attractive to Basemap users IMHO

It is kind of a dilemma ;)

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Background basemaps in Basemap

2012-08-25 Thread klo uo
 Export Map (http://atlas.resources.ca.gov/arcgis/SDK/REST/export.html)
 seems like only function needed, but more knowledge about Basemap is
 needed, as my main problem with it is fitting projections right. I
 tried to overlay arcgis map over some Basemap projections like:

   m=Basemap(...)
   m.imshow(arcgis_map)
   m.drawcoastlines()

 But it never fits, and also aspect ratio should be considered.

Success! :)
It was that imageSR had to be set, as it doesn't seem to be deduced
from the map:


basemap_url = 
http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer/export?\
bbox=%d,%d,%d,%d\
bboxSR=4326\
imageSR=4326\
size=800,600\
dpi=128\
format=png32\
f=image % (lon1, lat1, lon2, lat2) \


Result with coastlines overlay attached!

Jeff, I think it is easy to make this function to Basemap class, but
I'm not confident doing it.
If you can make it, I'll then try to use it as template and pair it to
other available webservices

Cheers

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Background basemaps in Basemap

2012-08-25 Thread klo uo
 Result with coastlines overlay attached!

 Here is attachment

Hm, image needs to be approved by moderator...

Here is a link to it: http://i.imgur.com/1ZMoU.png

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Background basemaps in Basemap

2012-08-25 Thread Jeff Whitaker
On 8/25/12 3:08 PM, klo uo wrote:
 On Sat, Aug 25, 2012 at 10:19 PM, Jeff Whitaker jsw...@fastmail.fm wrote:
 Klo:  For cylindrical equidistant maps (projection='cyl') it will be easy,
 since the corner lat/lon values are all that is needed.  For other
 projections, we'll need a way to translate EPSG projection codes into
 Basemap kwargs.
 Jeff, how is it done for static bitmaps as bluemarble, etopo... ?
 Can't the same be done, if image fits in one of supported projections?

Klo:  The image in interpolated to the Basemap projection region. This 
is slow - the main reason to use the WMS is to avoid this by having it 
done on the server side.

 According http://atlas.resources.ca.gov/arcgis/SDK/REST/export.html
 `bbox` is required with syntax like:

Syntax: xmin, ymin, xmax, ymax

 Number format for `bbox` AFAIK (but not sure) depends on `bboxSR`
 projection and dense list of available projections with their code is
 here: http://atlas.resources.ca.gov/arcgis/SDK/REST/pcs.html

The trick is to figure out what the EPSG projection code is based on the 
Basemap projection info, and pass that information to the WMS server so 
it can do the interpolation.

Here's an example for south polar stereographic:

width = 12000.e3
plt.figure()
basemap_url =\
http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer/export?\
bbox=%d,%d,%d,%d\
bboxSR=3412\
imageSR=3412\
size=800,800\
dpi=128\
format=png32\
f=image % (-width/2,-width/2,width/2,width/2)
m =\
Basemap(projection='stere',resolution='i',lon_0=0,lat_0=-90,lat_ts=-70,\
 width=width,height=width,rsphere=(6378273,6356889.449))
m.imshow(plt.imread(urllib2.urlopen(basemap_url)),origin='upper')
m.drawmeridians(np.arange(-180,180,30),labels=[0,0,0,1],color='y')
m.drawparallels(np.arange(-80,-0,10),labels=[1,0,0,0],color='y')
m.drawcoastlines()
plt.show()

-Jeff

 So perhaps, by just providing `cyl` (bboxSR=4326) and imageSR to any
 desired projection from above list will do the trick?

 Quickly now, I tried to map other projection on whole world as it was
 easier not knowing Basemap that well:

 
 from mpl_toolkits.basemap import Basemap
 import matplotlib.pyplot as plt
 import urllib2

 lon1 = -180; lon2 = 180; lat1 = -90; lat2 = 90

 basemap_url = 
 http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer/export?\
 bbox=%d,%d,%d,%d\
 bboxSR=4326\
 imageSR=54030\
 size=2000,1000\
 format=png32\
 f=image % (lon1, lat1, lon2, lat2)

 m = Basemap(projection='robin', lon_0=0, resolution='c')
 m.imshow(plt.imread(urllib2.urlopen(basemap_url)), origin='upper')
 m.drawcoastlines()
 plt.gca().axison = False
 plt.title(Robinson Projection)
 plt.show()
 

 Seems almost fine ;)


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users