|
From: Jeff W. <js...@fa...> - 2012-08-25 15:58:06
|
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=J4YOAAAAEBAJ&dq=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,%d&bboxSR=4326&size=1024,768&dpi=128&format=png32&f=image" >> > % (lon1, lat1, lon2, lat2) >> > overlay_url = >> > >> "https://ogcie.iblsoft.com/sigwx?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&LAYERS=ASXX&WIDTH=1024&HEIGHT=768&CRS=EPSG:4326&BBOX=%d,%d,%d,%d&TRANSPARENT=TRUE&STYLES=&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 > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users |