SpatialGalaxy Planet - Open Source Welcome Here

March 19, 2010

SlashgeoFirst WhereCamp in Quebec City, March 23

Luc Vaillancourt writes "The first WhereCamp in Quebec City will be held March 23 in the afternoon. (www.wherecamp-qc.com)

Date / time : Tuesday, March 23, from 1PM to 5PM
Location : Le Cercle (restau-pub) 228 St-Joseph Est, Québec, QC
Cost : Free
Registration : RSVP on EventBrite here
Hosted by : www.BALIZ-MEDIA.com, the only Canadian online magazine covering the Geospatial industry in French.

The WhereCamp will be followed by an "Happy hour" hosted by the local OSGeo Chapter, OSGeo-Qc.
This will be the perfect occasion to continue the conversations initiated in the afternoon and to meet professionals from the Geospatial industry, involved in Open Source or not !

Welcome to everyone* ...

*the Event will mainly be in French !"

Read more of this story at Slashgeo.

Slashgeo3-D Printer Creates Buildings From Dust and Glue

Slashdot runs a discussion named 3-D Printer Creates Buildings From Dust and Glue. Their summary: "D-Shape, an innovative new 3-D printer, builds solid structures like sculptures, furniture, even buildings from the ground up. The device relies on sand and magnesium glue to actually build structures layer by layer from solid stone. The designer, Enrico Dini, is even talking with various organizations about making the printer compatible with moon dust, paying the way for an instant moonbase!" See previous stories below, it's not the first time we discuss 3D printing.

Read more of this story at Slashgeo.

SlashgeoRuin a Map: Put Logos on It

Stefan Knecht via the make-my-day-department writes "The Google Maps Australia Blog has an article that well could be the end of the map as we know it. It suggests that companies might pay Google Maps to place their logo on Google Maps. Only the announcement didn't become too specific on that:

"These easily recognisable logos more closely depict online what the offline world looks like, so next time you're trying to find your way on the map you can navigate more easily using these icons as landmarks."
This is the first step to a "billboardization" of Google Maps.
See here how it could look in Google Maps' wet dreams. *



The right picture is taken from the movie Logorama, a 17-minute animated film made by the French collectibe H5. The film depicts events in a stylized Los Angeles, and is told entirely through the use of more than 2,500 contemporary and historical logos and mascots. The film won the Prix Kodak at the 2009 Cannes Film Festival and the Academy Award for Best Animated Short Film at the 82nd Academy Awards." See also related stories below.

Read more of this story at Slashgeo.

March 18, 2010

SlashgeoSlashgeo.org Now a Media Sponsor of FOSS4G 2010, Barcelona, September 6-9th

It's my pleasure to announce Slashgeo.org is a media sponsor of the FOSS4G Conference again this year. Next September 6-9th, FOSS4G 2010 will take place in Barcelona, Spain. Here's the official website. You can already register, take a look at the workshops and tutorials and you even have until April 15th to submit abstracts, including on the academic track.

Slashgeo regularly covers FOSS4G-related news; we have a specific FOSS4G topic and one more generic on open source geospatial software. For FOSS4G 2009, I offered my personal summary of the event. Since it's going to be one of the best geospatial conference of the year for certain, I sure hope I'll be able to make it and even if I can't, I'll make sure our readers don't miss anything major out of the conference.

Read more of this story at Slashgeo.

March 17, 2010

SlashgeoNational Hydro Network of Canada - FGDB Format

GeoBase Support writes "In celebration of United Nations World Water Day on March 22, National Hydro Network's (NHN)of Canada own contribution is the release of a brand new data format added to its product line of NHN distribution formats. In fact, from now on, NHN product data can be downloaded in ESRI File Geodatabase (FGDB) format, in addition to GML (Geography Markup Language), ESRI Shapefile and KML (Keyhole Markup Language) formats already offered. This new FGDB format is offered with an ESRI ArcMap MXD Project file, which makes NHN data much more easily usable, notably because of the data structure, symbology or graphical semiology and already built-in geometric network it contains. Canada's national coverage of NHN data is now fully available in this new format. All this is accessible at no cost on GeoBase portal. For more details and to access available data, please see the National Hydro Network section." See also several related stories below.

Read more of this story at Slashgeo.

March 16, 2010

Mateusz LoskotOpen Source, Decoupled and Accelerated

All right, I confess, I’ve lied a bit in the topic. I’m not going to discuss any of the Free and Open Source Software philosophies here. What I’m going to do is to smuggle an interesting discussion that I believe it may be interesting to other Open Source Software hackers, especially projects from the C/C++ camp of the OSGeo Foundation. I would also say that subject of this discussion is quite idiomatic to the universe of FOSS production. It is about a software project. A project that has grown and it has grown in many dimensions, also in parallel dimensions.

“See the turtle of enormous girth!
On his shell he holds the earth.” — Stephen King

Infrastructure supporting a project becomes insufficient, maintenance is difficult, release process is a full-time job and situation has taken a lot of the fun out of participating. Population of users and developers has grown. As the Community gathers appreciable portfolio of masters of the software development craft, it is in constant state of snowball war exchanging fire of ideas, new projects and discussions. It’s truly a pleasure to learn about them but, well, it pours oil on the fire of entropy. Here we come to the crux.

Gain of entropy eventually is nothing more nor less than loss of information — Gilbert N. Lewis

Today, David Abrahams posted, somewhat provocative, e-mail to the Boost project mailing list. It is titled Boost, Decoupled and Accelerated and delivers the following message: It’s time to make Boost development fun again.

It may sound like yet another internal discussion within an Open Source project. There are zillions of similar debates archived around. Yes, indeed, but not exactly. In fact, David announced something that may be of wider interested. It is

a system called Ryppl to decentralize development, testing, release, and installation of interdependent projects

followed by yet more interesting comment

I believe this project has the potential to change the face not only of Boost, but of open-source software in general.

One may think, well, it seems related to the issue of the current trends or we’re suffering redundancy in IT prophets. Perhaps, perhaps, perhaps… but what I know for sure is that David Abrahams is one of my favourite and highly regarded software developer and author. I can hardly recall any of David’s comments, observations or suggestions that would be lacking of point, I mean a very rational point.

I have licked a bit of experience myself of working with or maintaining complex projects or projects that feel complex. I think I wouldn’t risk anything saying David has a point. I’m looking forward learning more about the whole idea.

I hope I’ll be able to confirm it myself while listening to David’s presentation at BoostCon’10.

March 15, 2010

SlashgeoBest Practices for Sharing Sensitive Environmental Geospatial Data

NRCan's GeoConnections.org is sharing a new guide named Best Practices for Sharing Sensitive Environmental Geospatial Data (74-pages pdf). From the executive summary: "The purpose of these Best Practices is to educate Data Contributors, Owners, Custodians, Stewards and Consumers of the issues and concepts associated with protecting, sharing and utilizing sensitive geospatial data, with a focus on supporting programs, services, businesses and / or applications related to the Environment and Sustainable Development (E&SD) community. The intention is to provide practical guidance to those interested in developing their own sensitive environmental geospatial data sharing policies and protocols." See also previous stories below, including their Data Licensing Best Practices Guide.

Read more of this story at Slashgeo.

SlashgeoPostGIS 1.4.2 and 1.5.1 Released

The excellent open source geospatial database PostGIS 1.4.2 and 1.5.1 just got released. Fixes for 1.5.1: "* #333, remove unnecessary VACUUM from install file (Kevin Neufeld) * #410, update embedded bbox when applying ST_SetPoint, ST_AddPoint ST_RemovePoint to a linestring (Paul Ramsey) * #411, allow dumping tables with invalid geometries (Sandro Santilli, for Regione Toscana-SIGTA) * #414, include geography_columns view when running upgrade scripts (Paul Ramsey) * #419, allow support for multilinestring in ST_Line_Substring (Paul Ramsey, for Lidwala Consulting Engineers) * #421, fix computed string length in ST_AsGML() (Olivier Courtin) * #441, fix GML generation with heterogeneous collections (Olivier Courtin) * #443, incorrect coordinate reversal in GML 3 generation (Olivier Courtin) * #450, wrong area calculation for geography features that cross the date line (Paul Ramsey) * Ensure support for upcoming 9.0 PgSQL release (Paul Ramsey)." See also previous stories below.

Read more of this story at Slashgeo.

SlashgeoGPS Log Analysis Uncovers Millions In NYC Taxi Overcharges

Slashdot runs a story named GPS Log Analysis Uncovers Millions In NYC Taxi Overcharges. Their summary: "The NY Times reports that New York City's Taxi and Limousine Commission is using GPS data collected in every cab to review millions of trips in New York City over the past 26 months and has discovered a huge number in which out-of-city rates, twice the rate charged for rides in the five boroughs, were improperly charged. The drivers' scheme, the commission says, involved 1.8 million rides and cost passengers an average of $4 to $5 extra per trip when drivers flipped switches on their meters that kicked in the higher rates, costing New York City riders a total of $8.3 million. Cab drivers are supposed to charge the higher rate only when they cross the border between New York City and Nassau or Westchester. 'We have not seen anything quite this pervasive,' said Matthew W. Daus, the taxi and limousine commissioner. 'It's very disturbing.' The taxi industry vigorously challenged the city's findings, saying it was unimaginable that such a pervasive problem could be the result of deliberate fraud. The commission says that 75% out of the city's 48,000 drivers had applied the higher rate at least once. Officials hope to roll out a short-term fix in two or three weeks in which an alert will appear on the backseat monitor when a cabbie activates the out-of-town rate." What I find funny, in the previous related stories below, is that in 2007, we discussed one named 'New York Taxi Drivers To Strike Over GPS', and before in 2005, a previous one named 'NYC Cabbies Say No to onboard GPS ', no wonder...

Read more of this story at Slashgeo.

March 14, 2010

Mateusz LoskotBoost.Geometry blog

Boost Geometry (aka Generic Geometry Library, GGL)It’s been a month since Barend Gehrels launched blog dedicated to development of Boost.Geometry library which is also known of its former name as Generic Geometry Library or shortly GGL.

Here I go we a bit delayed announcement: http://barendgehrels.blogspot.com

Mateusz LoskotWhere is my donut?

I’m reading Darren’s post about The Geography of Tim Hortons. It’s interesting. It’s fun. The geospatial-enabled fast food consumption seems to be well aligned with the recent prophecies about what’s lucrative now, apart from donuts. It could be interesting to compare the Hortons’ trend with country-level version of this map. Perhaps, ST_Overlaps would return false, but ST_Intersection would likely return a pretty large geometry.

Anxiously, however, my enthusiasm is being a little bit repressed. The idea is a double edged sword and instead of navigating ourselves straight to donut heavens, we should rather start hiding such dangerous places from all publicly available maps and guides. This could be a part of health promoting geocaching campaign “Burn to Find”.

And I’m not going to put any smiles in here.

Direct costs are estimated to be £4.2 billion and Foresight have forcasted that this will more than double by 2050 if we continue as we are.UK DoH report.

March 12, 2010

SlashgeoFriday Geonews: More Open Source Geocoders, Geolocation Comes to Facebook, RADARSAT-C News and more

Here's your weekly dose of geonews in batch mode.

On the FOSS4G and open data front, there's a followup entry reviewing more open source geocoders (initial story). via the OGD blog I found an interesting entry on the failures of Edmonton and Vancouver open data efforts: "[...] two minor mistakes that are preventing the Edmontorcouver opendata initiative from being a tremendous success [...] 1. They expected a new community to build itself. 2. They wrote their own license." GeoServer new supports ImagePyramid imports. There's also a long article about creating interactive charts with Geopublisher 1.4. There's also a short entry on displaying two different graticules in QGIS. Here's a site that let's you overlay OpenStreetMap data transparently On Google/Yahoo Maps.

In the everything-else category, Slashdot discussed a story named about a new phone to track employees movements and a discussion on augmented reality. Here's an entry named Geotag Photos with an Android Phone and Any Digital Camera. Via O'Reilly, here's an entry on Twitter's location policy. You can also embed Bing Maps Twitter Maps on your website. Geolocation is also coming to Facebook next month. In fact, MapQuest has a new feature to share MapQuest maps woth Facebook friends. The Canadian RADARSAT Constellation got confirmed funding in the recently announced federal budget. Using GPS sensors, it seems the Chilean earthquake moved the City of Conception 10 feet to the west. In addition to the Google geonews shared this morning, here's Fredericton, Canada in 3D and Bloemfontein, Port Elizabeth and Pretoria in South Africa and Mulhouse in France also in 3D.

Read more of this story at Slashgeo.

SlashgeoERDAS Chile Relief Efforts

From the ERDAS website : "ERDAS has created a Chile Relief Website and web service enabled geospatial datasets free of charge for all organizations participating in the relief efforts to the Chile earthquake and tsunami disasters. 
The following website has been updated to contain a Chile Relief Map context to provide a web map interface to the Chile Web Services:
http://apollopro.erdas.com/apollo-client/index.jsp?fullscreen=true"

Visit the site to see a list of all the data.

Read more of this story at Slashgeo.

SlashgeoGoogle Geonews: Biking Directions in Google Maps, New StreetView Imagery, and more

A lot of recent major Google geonews lately. Google made the announcement of the addition of biking directions in Google Maps: "This route avoids hills (phew!) and puts me on the Burke-Gilman trail for most of the journey. When I need to get off the trail to cross town, biking directions makes sure to keep me on bike-friendly roads and avoid some of the city's busiest intersections. The time estimate for the route is based on a complex set of variables accounting for the type of road, terrain and turns over the course of my ride. [...] When Map Maker is available in the U.S., all riders will be able to directly contribute their local knowledge about trails, bike lanes and suggested routes.". On the Google Lat Long blog, you'll get more information regarding those biking directions: "[...] I can lift the curtain and explain the many factors and variables that we've had to take into account to put this whole feature together [...]". Obviously, offered bike routes are not perfect and will improve over time.

There's an official entry on the major StreetView imagery update. Mapperz shows a map where we learn almost all of U.K. is now available in StreetView. You can now also edit places directly in StreetView. Also adding to integration, there's a new 'Edit this place' capability in Google Maps. There's also Barcelona now in 3D in Google Earth. The GEB offers a nice wrap-up entry named playing games in Google Earth.

Read more of this story at Slashgeo.

Technical RamblingsEnabling boto logging

When using the Python ‘boto’ library for accessing Amazon Web Services, to enable logging to a file at the ‘debug’ level, simply use the logging module’s configuration:

import logging
logging.basicConfig(filename="boto.log", level=logging.DEBUG)

Place this line near the top of your script, and logging will take place to a file in your current directory called “boto.log”.

I’m sure that this is obvious for most people who use the Python logging module, but this is new code to me, and it took me a fair bit of looking to find out how to enable logging; hopefully other people find it more easily now.

SlashgeoVodafone's Wayfinder Closes Shop

Found on Engadget. It demonstrates just how deadly Google can be to the core business of other companies. From their article : "Back in January 2009, as Vodafone was preparing to close a £20 million ($30 million) deal to buy Swedish mapmaker Wayfinder, it was seen as a bold move from a carrier intent on entering the apparently lucrative market for location based services. Fast forward to the present day -- past the bit where free Google Maps Navigation destroyed TomTom and Garmin share prices, and past the introduction of free turn-by-turn navigation to Nokia's Ovi Maps -- and you'll find Wayfinder gently sobbing into a handkerchief as it permanently closes up its doors. Vodafone's Anna Cloke gives us the reason for it with devastating concision:"We could not charge for something that others gave away for free.""

Read more of this story at Slashgeo.

March 11, 2010

SlashgeoMapGuide Maestro 2.0 Released

It's been almost a year since we last mentioned Maestro, and yesterday was announced the release of MapGuide Maestro 2.0. Reminder: " MapGuide Maestro is an Open Source (LGPL) map authoring tool for MapGuide Open Source." The first link above offers a list and screenshots of the top 10 features of MapGuide Maestro 2.0: 1. Theming, with ColorBrewer Suport 2. Expression Editor 3. Resource Validation 4. Improved XML Editor 5. Profiling 6. Package Management 7. Custom Resource Templates 8. Duplicate Resource 9. Colour-Coded Resource Tree 10. General Usability. See also related stories below.

Read more of this story at Slashgeo.

SlashgeoNEST 3C Released

phyr writes "The latest release of NEST (Next ESA SAR Toolbox) 3C-1.01 is now available for free at http://earth.esa.int/nest. NEST is an ESA toolbox with an integrated viewer for reading, post-processing and analysing ESA and 3rd party SAR data starting from Level 1. NEST is developed by Array Systems Computing Inc. under contract to ESA. NEST 3C adds the following features:
  • Improved ROIs and Bitmasks
  • Geometry Import and Export
  • Radarsat 1 Reader
  • TerraSARX SSC Reader
  • Cosmo-Skymed Reader
  • ASAR WSS Debursting and Mosaicing
  • Layover and Shadow Bitmasks
  • Filling Holes in DEM
  • Basic C-Band Wind Field Estimation
  • New Geotools Reprojection
  • Multi-core Support
  • Bug fixes and performance enhancements
" We mentioned the open source NEST project before, see related stories below.

Read more of this story at Slashgeo.

SlashgeoAnnouncing the WMS Inspector Project

From the OSGeo-Discuss list, I learned about the announcement of the WMS Inspector project. From the announcement: "This is a post to announce the first public release of WMS Inspector, an open source Firefox add-on with tools for working with Web Map Services (WMS). It can be specially useful when working with Javascript mapping libraries like OpenLayers or MapBender or setting up WMS services. Main features include: * Load all WMS requests in the current page and their parameters * Requests sorting by service or type * Individual WMS requests (images or errors) visualization * Copy services, requests or parameters to the clipboard * Direct edition of request parameters values * Output GetCapabilities response as an HTML report or original file The WMS Inspector can be downloaded from the official Mozilla repository. For more information, please visit http://wiki.github.com/amercader/WMS-Inspector/ "

Read more of this story at Slashgeo.

SlashgeoYQL Javascript Geo Library

Found via Ajaxian : "I give you the YQL Geo library (and its source on GitHub). Using this library you can do the following:"
  • Detecting the visitor's location with the W3C geo API and with IP as a fallback
  • Find geo location from text
  • Find location from lat/lon pair
  • Find locations in a certain web document (by URL)
  • Get the location for a certain IP number

Read more of this story at Slashgeo.

SlashgeoDigitizing and Geocoding Old Maps?

Slashdot discusses a story named Digitizing and Geocoding Old Maps? Their summary: "I have quite a few old maps (several hundreds; 100+ years old, some are already damaged – so time is not on my side). What I want to do is to digitize them and to apply geo-coordinates to them so I can use them as overlays for openstreetmap data or such. Obviously I cannot put those maps onto my €80 scanner and go. Some of them are really large (1.5m x 1.5m roughly, I believe) and they need to be treated with great care because the paper is partly damaged. So firstly I need a method or service provider that can do the digitizing without damaging them. Secondly I need a hint what the best method is to apply geo coordinates to those maps then. The maps are old and landscape and places have changed, it maybe difficult to identify exact spots. So: are there any experiences or tips I could use?" See also the replies on the site.

Read more of this story at Slashgeo.

March 10, 2010

Clever ElephantWhere 2.0 Drinking Game

It's that time of year again, and I'll be sitting in the audience with my flask (I hope you will too!) playing the Where 2.0 drinking game. Here's some of my phrases, what are yours?
  • ... find a Starbucks...
  • ... we're releasing an API ...
  • ... friends list ...
Also, take a big slug if someone talks about working with geospatial data more complex than a lat/lon point!
 

SlashgeoArcGIS Explorer Build 1200 Now Available

Just saw over on the GeoGeek New Zealand blog that a new version of ArcGIS Explorer is available. It comes packed with a lot of features and updates including updated basemap gallery, new analysis tools, enhanced symbol management navigation methods, and may more. Visit the blog for the full details and screenshots.

Read more of this story at Slashgeo.

Mateusz LoskotBoost.Geometry and macros made by Apple

Boost Geometry (aka Generic Geometry Library, GGL)I have no pleasure continuing my macros are evil tales but the life of C++ programmer eagerly wants to writes add another chapter to the story. Today, it’s time to rant on Apple and its XCode.

One of Boost Geometry (aka GGL) users, Mark, reported that he can not compile his program using the library with GNU C++ compiler from XCode. The compiler throws mysterious complain of a very low-level nature of C++ programming language:

Expected unqualified-id before 'do' in
/usr/local/include/boost_1_42_0/boost/geometry/geometries/concepts/check.hpp

Thanks to follow-up by Stjepan we quickly know who to blame for that. It is XCode header AssertMacros.h. It even might be one of public headers from development package of XNU, the Mac OS X kernel, what’s even more fun.

What actually happens that causes the problem?

Boost Geometry defines function template for concept checking:

template <typename Geometry>
inline void check()
{
    detail::checker<Geometry, boost::is_const<Geometry>::type::value> c;
    boost::ignore_unused_variable_warning(c);
}

Apple XCode defines macro using exactly the same name as the function check. The C++ preprocessor, which operates before compiler, substitutes the name check with content of the macro. For the Boost Geometry function check it means that a pile of garbage is injected in place were the function name is expected:

template <typename Geometry>
inline void do { if ( __builtin_expect(!(), 0) ) { DebugAssert('?*?*',
0, "Third Party Client" ": " "", 0, 0, "/usr/local/include/boost/
geometry/geometries/concepts/check.hpp", 181, (void*)0); } } while ( 0 )
{
     detail::checker::type::value> c;
     boost::ignore_unused_variable_warning(c);
}

Obviously, it makes compiler to give up to instantiate the check function from the template and to compile it properly.

C/C++ macros are evil, however, not by design but by insanity of programmers. Every macro defined in a public C/C++ header, should be defined using as unique as possible, but still usable name. I wish Apple folks designed their C/C++ macros as unique as they make their hardware products, even if made in China eventually. This particular macro that caused the problems discussed here, could be named to APPLE_XNU_CHECK and life would be easier. Or, given the fact that almost 3000 files using these identifiers live in Boost C++ Libraries only, I probably should say: life would be more productive, efficient and cheaper.

By the way, it’s a known problem @ Boost and it looks Boost Folks are trying to figure out best solution. See ticket #2115 – Avoid bad Apple macros.

…to be continued

March 09, 2010

SlashgeoIntroducing the new Google Geocoding Web Service

After yesterday's review of open source geocoders, Google just announced the introduction of the new Google Geocoding Web Service. Improvements, from the announcement: "* A flatter response format for address components that is easier to parse. * The ability to tag an address component with multiple types. * Both full names and abbreviations for countries and states. * Differentiation between rooftop and interpolated geocoder results. * Both the bounding box and recommended viewport for each result. [...] The Geocoding Web Service is intended to enable precaching of geocoder results that you know your application will need in future. For example, if your application displays property listings, you can geocode the address of each property, cache the results on your server, and serve these locations to your API application. This ensures that your application does not need to geocode the address of a property every time it is viewed by a user." See also related stories below.

Read more of this story at Slashgeo.

March 08, 2010

SlashgeoGeoTools 2.6.2 Released

GeoTools 2.6.2 has been released. From the announcement: "This release is mostly intended to provide a number of important bug-fixes, but there are also some new features and improvements for your programming pleasure including: * The rendering system now has the ability to draw polygon fills and SVGs as vectors and draw marks with arbitrary sizes. * GeoTools applications can now use the H2 database with a spatial index provided by Hatbox. * Support added for polyconic projections." See also previous stories below.

Read more of this story at Slashgeo.

SlashgeoReview of Open Source Geocoders

The linear thiking blog offers a short review of open source geocoders. From the entry: "All of the engines implement parsing and matching logic purely in code. None of them provide a declarative description language to allow easy modification of parsing, standardization, and matching rules. [...] In all the projects the parser design appears to be fairly ad-hoc and poorly documented. This situation doesn't inspire confidence that it would be possible to modify the parser to support a different address model, or to handle particular kinds of input errors." See also previous stories below.

Read more of this story at Slashgeo.

Dylan's BlogInfoChimps

March 06, 2010

Mateusz LoskotKudos to RMS and Torvalds

I have just given ohloh.net kudos to Richard Stallman and Linus Torvalds.

Hehe, and I didn’t do it because I expect to be given back with a kudo from RMS or Torvalds. I did it because I appreciated the bloody good software development works they do: my favourite C/C++ compiler from GCC, one of my favourite text editors GNU Emacs and my favourite operating system – Unix for Masses and my favourite version control system Git.

Mateusz Loskotgit info script

As a long time user of Subversion, I’ve got used to use of svn info command. Since I started drifting to Git system, I’ve missed this command pretty much until I found git-info script crafted by Duane Johnson

Kudos to Duane! And, I suggest any SVN user who reincarnated as Git user to grab and try it.

March 05, 2010

SlashgeoFriday Geonews: a Murder in Google Earth?, OpenStreetMap in Bing Maps, ESRI New Basemap, and more

Here's your weekly dose of geonews in batch mode.

On the Google front, you can now refine Google searches by location, with the "Nearby" tool in the Search Options panel. Google also announced the winners of their StreetView trike contest. There's also Athens in 3D. If you wonder how crazy it can get, here's an entry named solving a murder with Google Earth. There's also new imagery in Google Earth, including Chile. Here's an entry on heat maps with Google Fusion Tables.

On the Microsoft's front, here's a two-parts article on Integrating OpenStreetMap in Bing Maps. Bing Maps also just released their biggest imagery update ever, 6.7 million square kilometers.

On the ESRI front, we mentioned last week the podcast about ESRI's position on open source, via GGNB I learned about the new ESRI page about their position on open source software. The ArcGIS API For JavaScript 1.6 Now Available. And ESRI also announced their new World Topographic base map (screenshots included).

On the FOSS4G front, here's how to create contour lines in QGIS. There's also a new Humanitarian OpenStreetMap Team (HOT) mailing list.

In other news, several geoblogs mentioned that Platial is turning off their services. APB offers an entry named GIS Used to Help Decrease Stroke, Heart Disease, and Cardiovascular Risk 25%. There's also an entry about large shapefiles on small screens using a drawable spatial index. Engadget does a head-to-head comparison of three GPS smartphone navigation systems: Google Navigation, Ovi Maps, and VZ Navigator. TMR also points to the testing of the SPOT Satellite GPS Messenger.

In the maps category, via Mapperz, I learned about ProtectedPlanet, the latest initiative of the World Database on Protected Areas. Here's a named Which Burger Chains Dominate the U.S. Landscape? Here's another map, linking the affordability of housing and transportation in the U.S.

Read more of this story at Slashgeo.

SlashgeoOpticks 4.3.3 Released

kstreith writes "Opticks 4.3.3 is now released along with a new Spectral processing capability and Python scripting capability. Also includes updates to the existing IDL scripting. The release highlights include better support for scripting and support for loading FITS data. The new Spectral Processing extension provides algorithms to work with hyper-spectral and multi-spectral data and visualize and perform signature matching. The new Python scripting extension allows a user to combine the power of Python with the visualization power of Opticks. The IDL scripting extension now supports IDL 7.0 and IDL 7.1." We mentioned the open source project Opticks before, see previous stories below.

Read more of this story at Slashgeo.

Clever ElephantSend us Jeremy and Keyur!

ESRI (pretty new web page, by the way) has put their open source position on-line and also produced a short podcast with Victoria Kouyoumjian on the same topic.

http://www.esri.com/news/podcasts/audio/speaker/staff_kouyoumjian.mp3

One thing that struck me in the podcast was when Victoria noted that ESRI has sponsored open source events in the past (most notably FOSS4G 2007 directly, but also 2008 and 2009 to a lesser extent through 50°North). She says,
These events allow us the opportunity to engage in conversations and dialogs with various technologists because we want to gain feedback about the needs of open source developers and users. The objective of course is to channel this information back to development so we can reflect this in future products and business decisions in order to best support our customers.
So far ESRI attendance has been at the managerial level, and while I love those guys (hugs to Satish and Victoria!) some real sparks could fly and serious interoperability improvements be made if we started seeing the developers, the project leads and software designers, at the events. We can do better than "channeling" information back to development, let's immerse development in it!

Update: We promise to send them back. Really.
 

Dylan's BlogAccessing Climate Change Data and a Custom Panel Function for Filled Polygons

GCS Model Grids

Recently finished some collaborative work with Vishal, related to visualizing climate change data for the SEI. This project was funded in part by the California Energy Commission, with additional technical support from the Google Earth Team. One of the final products was an interactive, multi-scale Google Earth application, based on PostGIS, PHP, and R. Interaction with the KMZ application results in several presentations of climate projections, fire risk projections, urban population growth projections, and other related information. Charts are dynamically generated from the PostGIS database, and returned to the web browser. In addition, an HTTP-based interface makes it simple to download CSV-formatted data directly from the CEC server. Some of our R code seemed like a good candidate for sharing, so I have posted a complete example below-- illustrating how to access climate projection data from the CEC server, a couple custom functions for fancy lattice graphics, and more.

read more

March 04, 2010

Dylan's BlogYet Another plyr Example

another plyr exampleanother plyr example quantiles (0.05, 0.25, 0.5, 0.75, 0.95) of DSC by temperature bin

There are plenty of good examples on how to use functions from the plyr package. Here is one more, demonstrating how to use ddply with a custom function. Note that there are two places where the example function may blow up if you pass in poorly formatted or strange data: calls to 1) t.test() and 2) quantile(). Also note the use of the transpose function, t(), for converting column-wise data into row-wise data-- suitable for inclusion into a dataframe containing a single row.

read more

Slashgeo3D Graphics For Firefox and Webkit (Safari and Chrome)

Slashdot discusses a story named 3D Graphics For Firefox, Webkit. Webkit is the open source engine behind Apple's Safari and Google's Chrome browsers. Their summary: ""A group of researchers plans to release a version of the Firefox browser that includes the built-in ability to view 3D graphics. They've integrated real-time ray tracing technology, called RT Fact, into Firefox and Webkit. Images are described using XML3D, and the browser can natively render the 3D scene." The browser will be released within a few weeks, the researchers say, and they are checking with the Mozilla Foundation about whether they can call it Firefox."

Read more of this story at Slashgeo.

Mateusz LoskotAX_LIB_LIBKML macro

Recently, I was playing for a while with Brian’s new OGR LIBKML driver and I integrated it with GDAL/OGR build system, so it’s more convenient to build, test and use it. The complete tree is available in GDAL sandbox in mloskot/winkey-libkml. (It is just a give it a try-like prototype and I don’t actively maintain this branch myself. Hopefully, Brian will take it over.)

By the way, I crafted AX_LIB_LIBKML macro for Autoconf. This macros checks for headers and libraries of specified version (or newer) of Google libkml library and defines compilation and linking flags.

I submitted the macro to GNU Autoconf Archive. It is the new incarnation of well-known autoconf-archive.cryp.to. Peter Simons announced not long time ago that

The archive has moved to Savannah: http://www.nongnu.org/autoconf-archive/. Version 2009-04-26 was the last to be released at autoconf-archive.cryp.to.

Happy detecting libkml!

March 03, 2010

Mateusz LoskotConst-correctness schizophrenia in GDAL

Const-correctness rants are quite common topic of chats on #gdal IRC channel. Some of the pearls I’ve got printed in to my mind:

A: The lesson is I ought to get things right the first time.
B: The issue with const method is that if you want to add lazy loading later, it can cause problems
C: GDAL is rather painful to use with const correct code, unfortunately :(
B: The solution is obvious: don’t write const correct code

Who’s right then, A or B?

I recall another motto from #gdal channel that sounds like “when unsure, do nothing” which has the following rationale:

especially when I realize afterwards that I’ve f**cked things because I neglected to follow the motto

Remembering these recommendations, it’s pretty clear why the const-mess in GDAL has happened. I’d conclude paraphrasing the motto this way:

I’ve f**cked things because I neglected to make a decision.

Now, poor GDAL beginner deadpickle, trying to find out (it’s me the evil) why compiler complains about his not-that-bad-written code, wandered to find and ask C gurus @ comp.lang.c and got the problem explained by Malcolm who wrote:

The problem is that, when C was first developed, there was no const keyword. So strings literal, which are constant, had to be non-const for backwards compatibility. This means that lots of programmers get lazy and omit the const, even from functions which don’t modify their string arguments. (There are also some subtle problems with const which means that this isn’t always a case of pure laziness). So a sort of solution is to discard the const qualifiers. However this is perpetuating the problem in your own code.

The motto stays in contradiction to a well-known best practice of const correct sooner than later. It’s way easier and cheaper to remove const-correctness once it turns out it does not express properly the actual design and contract than to apply it to existing codebase. Sometimes, the latter is even not possible making things f**cked up twice, in existing code base and in client’s code.

Mateusz LoskotCMake interview for FLOSS Weekly at 4:30 EST

Bill Hoffman just notified on the CMake mailing list:

At 4:30, I am going to be interviewed for FLOSS Weekly.
The chat is here:
http://irc.twit.tv/
The video is here:
http://live.twit.tv/
Should be going on some time around 4:30 EST.

It’s on now.

UPDATE: FLOSS Weekly 111: CMake archived audio podcast

SlashgeoGeoMOOSE 2.2 Released

The open source project GeoMOOSE 2.2 has been released two weeks ago. Since it's been a while we mentioned the GeoMOOSE project, here's a reminder of what it is: "GeoMOOSE is a Web Client Javascript Framework for displaying distributed cartographic data. GeoMOOSE has a number of strengths including modularity, configurability, and delivers a number of core functionalities in its packages. GeoMOOSE is also very light weight for servers making it easy to handle a large number of users, with a large number of layers, and a large number of services without stressing a server. The GeoMOOSE core is written using JavaScript and HTML. It is entirely possible to run GeoMOOSE with nothing more than a basic webserver (Nginx, Apache, IIS). But besides the basic client core, GeoMOOSE also comes prepackaged with a number of built in services written in PHP. These services add the ability to perform drill-down identify operations, selection operations, and search datasets. If you have existing scripts that perform similar functions, GeoMOOSE can be tuned to work with those services, no matter which language they were written." See also related stories below.

Read more of this story at Slashgeo.

March 02, 2010

SlashgeoIBM: Make Your Own Map-Based Mashup

A friend sent me a link to an IBM article named "Make your own map-based mashup, create a KML service from ESRI shapefile data", using open source geospatial software. The summary: "Map-based mashups abound these days. Mashups require services that can be mashed up. Location-based mashups need services that provide boundary information. With Web-based mapping providers, you can easily create a map-based mashup with little or no capital investment. In this article, learn how to create a KML boundary service from an ESRI shapefile to be used in mashups."

Read more of this story at Slashgeo.

SlashgeoSaTScan - Spatial, Temporal and Space-Time Scan Statistics

Via O'Reilly, I learned about the free (but not open source?) software named SaTScan. What it is? "SaTScan is a free software that analyzes spatial, temporal and space-time data using the spatial, temporal, or space-time scan statistics. It is designed for any of the following interrelated purposes: * Perform geographical surveillance of disease, to detect spatial or space-time disease clusters, and to see if they are statistically significant. * Test whether a disease is randomly distributed over space, over time or over space and time. * Evaluate the statistical significance of disease cluster alarms. * Perform repeated time-periodic disease surveillance for early detection of disease outbreaks. The software may also be used for similar problems in other fields such as archaeology, astronomy, botany, criminology, ecology, economics, engineering, forestry, genetics, geography, geology, history, neurology or zoology. "

Read more of this story at Slashgeo.

SlashgeoJava Topology Suite (JTS) 1.11 Released

Version 1.11 of the open source Java Topology Suite (JTS) has been released. From the announcement: "The version contains numerous enhancements, including: * Delaunay triangulation and Voronoi diagrams * AWT Shape reading and writing * Geometry similarity metrics * support for Geometry densification * Numerous improvements to the JTS TestBuilder" See also related stories below. The JTS is the source of GEOS. See also related stories below.

Read more of this story at Slashgeo.

SlashgeoGoogle Awarded Broad Patent For Location-Based Advertising

Slashdot runs yet another geo-related story, this one named Google Awarded Broad Patent For Location-Based Advertising. Their summary: "Mashable has a report of a patent that just issued (6-1/2 years after filing) — apparently Google now has a lock on location-based advertising. It's not clear that the search company intends to assert the patent against any other companies (such as emerging rival Apple), but it's useful as leverage. Here is the patent."

Read more of this story at Slashgeo.

SlashgeoRadarVirtuel.com - Real-Time Aircraft Traffic Project

Bertrand writes "Hi people at slashgeo, I am a long time reader of slashgeo, big fan of your work as a geospatial professional, and this is the first time I am submitting a link. I am currently working with a partner on a project called RadarVirtuel.com, that we started last summer and that we are currently developping on our free time, besides our day jobs. Our goal is to display real-time aircraft traffic on the web, using all latest geospatial technology. In order to do so, our system is based on a network of contributers (private persons, companies) owning some ADS-B receiver and willing to share their data with us. In exchange, we make their data available online for anyone, and we will develop advanced services for them to analyze airplane traffic. We believe that this information can be useful for various needs (locating an airplane for personal or business purposes, computing statistics), and notably it can lead to a better public understanding of what happens above our heads. Our coverage area is mostly over Europe, thanks to the many aviation enthusiasts we have here. But we would love to have the same coverage over USA, Canada (all over the world, actually), and we hope people will want to contribute to our project everywhere. We hope you will be interested by our project, and that you will want to share this story with your readers. Since my English is not perfect, do not hesitate to write me if you have any question. Bertrand." See also related stories below, including the OpenFlights database.

Read more of this story at Slashgeo.

Clever ElephantNYC Sprint: Day 3

Third day, best day. There are four MapServer developers now working hard on implementing the rendering plugin changes. Thomas Bonfort is doing the core work, Steve Lime is re-working the old GD renderer, Dan Morissette is creating support for hatched styles, and Assefa is doing KML output.

In Geoserver land, Andrea Aime added support for variable substitution in SLD, which means that URL parameters can now be passed into SLD styling rules, to create dynamic styling effects. Tim Schaub and Justin Deoliveira also demonstrated an application that warms the cockles of my heart: using their new GeoScript extension they made a web-based application that takes in SQL and spits out maps. So now I can type PostGIS queries into a web page and see the results overlaid on a map. Crunchy!

Geoserver / OpenLayers Crew  Steve Lime Contemplates


Howard Butler has contributed some work on the auto-projection support in MapServer and is now working on LibLAS Oracle support. He also tracked down an excellent pastrami sandwich. So I am told.

In PostGIS world, Jeff Adams finished his lat/lon formatter and logged his first commit: an impressive complete collection of unit tests, documentation and a working function (ST_AsLatLonText) that can turn POINT(-120.5 12.25) into 12°15'0"N 120°30'0"W. Oliver continues to fix up the text output functions. And I completed my first cut of the WKT output. Curve support really adds a lot of overhead to these things! There are lots of variants and curves have more and sillier formatting rules than linear features. David Zwarg has continued beavering through tickets in the WKTRaster subsystem.

Thanks again to our sponsors, tonight we are heading out to dinner at a Malaysian restaurant in Chinatown.

Azavea LizardTech Coordinate Solutions
OpenGeo qPublic.net Farallon

March 01, 2010

Clever ElephantNothing, Nada, Zip, Bupkus

There is nothing new under the sun, and I have been wrestling this week with writing out ISO-standard well-known binary from PostGIS.

The most obvious difference is that the type numbers for encoding the presence of Z- and M-dimensions are not the ones described in the old OGC extension document [OGC members only, cited by Martin Daly in 2004, and extended further for PostGIS by Sandro Santilli that year] for WKB. Instead of setting high-bits to indicate the presence of Z and M, as OGC did, the ISO spec simply adds 1000.

So, the ISO geometry number for a PolygonZ is 3 (Polygon) + 1000 = 1003.

The, old OGC geometry number for a PolygonZ is 3 (Polygon) | 0x80000000 = 2147483651.

OGC seems more complex until you note that the function WKB_HASZ(num) can be written (num & 0x80000000). While the ISO test is (num >= 1000 && num < 2000). Setting flags for binary values (has-z, has-m, has-a-piece-of-pie) is nice.

Anyhow, that change was well-known and expected. What I didn't expect was the amount of ambiguity surrounding the definition of an empty geometry in WKB.

To review, the spatial SQL definition includes the concept of an "empty geometry", which is an empty set of a particular geometry type. The empty geometry has more information than a simple database NULL, which is a typeless emptiness. A 'POLYGON ZM EMPTY' has an implied dimensionality. It makes some sense that ST_Intersection() of two disjoint polygons would return a 'POLYGON EMPTY'.

The ISO SQL/MM well-known text specification has clear directions for writing empty geometries of all types. In fact, I've just written two of them above: the type name plus the 'EMPTY' keyword.

For well-known binary, ISO SQL/MM includes the following useless guidance:
i) Case:
i) If <point binary representation> immediately contains a <wkbpoint binary>, then <point binary representation> is the well-known binary representation for an ST_Point value that is produced by <wkbpoint binary>.
ii) Otherwise, <point binary representation> produces an empty set of type ST_Point
Representing an empty point in WKB is hard because there's nowhere obvious to indicate the lack of ordinates. But the ISO specification makes no attempt to solve the problem, they instead provide explicit guidance that is impossible to implement. Basically, if you are reading a WKB POINT and there are doubles after the TYPE number, you have a POINT(x y). If not, you have a POINT EMPTY. All well and good, but how do you distinguish, in a collection of WKB geometries, between the presence of doubles in the byte stream and the presence of another geometry in the stream? You don't.

The ISO guidance for empty Linestrings is even worse!
q) Case:
i) If <linestring binary representation> immediately contains <num>, then <linestring binary representation> is the well-known binary representation for an ST_LineString value. Let APA be an ST_Point ARRAY value with cardinality of <num> that contains the ST_Point values specified by the immediately contained <wkbpoint binary>s. <linestring binary representation> produces an ST_LineString value as the result of the value expression: NEW ST_LineString(APA).
ii) Otherwise, <linestring binary representation> produces an empty set of type ST_LineString.
As with the POINT case, the WKB reader is supposed to magically distinguish between an element of the current geometry (the <num>) in the byte-stream and an element of the next geometry in the byte-stream. And worse, the "clarifying" comment implicitly adds a whole new kind of empty geometry! What if the <num> is present, but the value is zero!?!

This is where the snake starts eating its tail. The way that implementations of OGC WKB have been encoding EMPTY geometries has been to provide the type number and an element count of zero. Back when PostGIS was first getting WKB support, Dave Blasby wrestled with the fact that the specification did not describe how to encode EMPTY. Mateusz Loskot recently published some information showing the WKB EMPTY implementation that Microsoft used for SQLServer. Their implementation is one of the options Dave described five years ago – there's only so many ways to solve this problem.

If ISO didn't like the use of a zero-valued <num> count as a way of indicating EMPTY, they had another option available, which was to follow the original OGC WKB standard and use bitmask flags on their type numbers. There could have been a bitmask for Z, a bitmask for M, and a bitmask for EMPTY. There could even have been a bitmask for SRID, fixing up a huge drawback in WKB, namely that WKB does not include a slot for the SRID, which is an important element in the geometry model.
Sidenote: As a result of WKB not having SRID support, it's not possible to round-trip a geometry through WKB without losing the SRID value. Try this standard SQL and see what happens:
SELECT ST_SRID( ST_GeomFromWKB( ST_AsBinary( ST_GeomFromText('POINT(0 0)', 4326 ) ) ) )
Then try the bastardized PostGIS EWKB format instead:
SELECT ST_SRID( ST_GeomFromEWKB( ST_AsEWKB( ST_GeomFromText( 'POINT(0 0)', 4326 ) ) ) )
As it stands now, the specification is out of synch with the implementations on the ground, which is bad news for the relevance of the specification. I will be implementing EMPTY using the same semantics as SQLServer, which will make the kinds of EMPTY PostGIS can represent slightly richer, but remain backwards compatible to the old schemes.
 

SlashgeoChile Earthquake Mapping

There is plenty of geoblogs sharing information on Chile earthquake mapping efforts. Brady Forrest of O'Reilly offers several links in an entry named 'Lessons From Haiti Will Aid Chile'. Off the Map offers other links, including Ushahidi Chile situation room. The Map Room offers map screenshots of the tsunami wave. The GEB offers satellites images and links. Map Hawk criticizes the New York Times maps for being highly confusing. Finally, both Google and OpenStreetMap offer their whole set of resources for the Chile earthquake response.

Read more of this story at Slashgeo.

Clever ElephantNYC Sprint: Day 4

End day was, as last year, a quiet one. Everyone worked on cleaning up their last bits of work before heading home around mid-afternoon. Unfortunately, most left before I had a chance to ask what they finished up!

(For my part, I finished some minimal regression tests on the WKT emitter, changed the emitter to use a stringbuffer for output, and upgraded the stringbuffer to be smarter about performance. Jeff Adams has been working on making our unit test program a little more flexible for developers (easier to add tests, and able to optionally run one test at a time)).

One more time, thanks to the sponsors, we got a great deal done and MapServer, Geoserver, PostGIS and the rest of the tribe are going to be stronger next year thanks to this event.

Special thanks also to Temim Fruchter of OpenPlans who was invaluable in helping me make arrangements in New York for hotels and food and all the things that made the event enjoyable and comfortable. Thanks to OpenPlans for hosting us in their lovely penthouse event room!

Azavea LizardTech Coordinate Solutions
OpenGeo qPublic.net Farallon

Clever ElephantNYC Sprint: Day 1

On a bright day in NYC, we all convened in the sunny Open Plans event room for the first day. As in last years sprint, the morning was spent in planning and discussions, and the afternoon folks began digging in.

The MapServer team talked about release plans for 6.0, and came up with an ambitious release plan. They recognize that not every item on the plan will make the final cut, but hope that most will find either funded or community effort to bring about. Among the highlights (to me):

Pluggable renderer would allow a much cleaner rendering chain, and new renderers for new formats to be more easily added. filterObj to enhance the power of MapServer querying and support OGC Filter fully (and incidentally leverage the power of databases like PostGIS more fully). Named styles to allow re-use of style objects through a map file, instead of repeating the definitions over and over.

I also talked with Steve Lime and Jim Klassen about a bug in the one-pass rendering code that is making complex WFS queries fail. We think we have a solution and Assefa is doing the final tests.

The PostGIS discussions were about our 2.0 roadmap and what the implications of various changes are. Unfortunately, most of my proposed/desired changes are predicated are a large change to the underlying data serialization, so going forward requires a good deal of bravery – I have to burn down the village in order to save it. Olivier Courtin is working on more tractable new features: a polyhedral surface, suitable for storing 3D buildings and other objects that have grown increasingly common.

David Zwarg and Jeff Adams from Avencia joined the PostGIS group, and are working hard already: David on WKTRaster and Jeff on a geographic coordinates formatting routine. Don't tell Jeff, but if he gets the output formatter working, I'm just going to ask him to try and write an ingester.

Justin Deoliveira and Tim Schaub began working on improving the scripting extensions to Geoserver, Tim working on the server-side JavaScript and Justin working on the Python (and David Winslow working on Scala!). Andreas Hocevar has begun a Google Maps V3 API layer for OpenLayers, which will allow Google layers without API keys in OpenLayers (yay!).

As usual, the team had to be driven into the night bodily at the end of the day – it is hard to pry nerds from their code.

Thanks to our 2010 sprint sponsors, for keeping us well supplied with food, drinks and coffee throughout this busy week!

Azavea LizardTech Coordinate Solutions
OpenGeo qPublic.net Farallon


Postscript: At the end of the day, Olivier and I settled on an order-of-operations to move towards the new database serialization in PostGIS. Step one, remove the current places in the code where the serialization pokes up into function code and get it completely isolated underneath a serialize/deserialize layer.
 

Clever ElephantNYC Sprint: Day 2

Today the Geoserver, MapServer and OpenLayers teams got together and really showed off the "making things work together better" theme. Starting from Andrea Aime's new "WMS rotation" feature, Daniel Morissette implemented the same feature with the same semantics in MapServer, while Andreas Hocevar implemented client support for the feature into OpenLayers. During testing, a small bug showed up in the Geoserver implementation, which Andrea fixed.

The final result is shown in this screenshot: layers from Geoserver and MapServer viewed and rotated together within OpenLayers.

screenshot008tm

The MapServer team is now really digging into a couple major goals: reading projection information automatically from data sources; and, making the rendering subsystem pluggable. Here they are deep in discussion on the rendering design:

MapServer Conclave

Automatic projection reading will make it easier for new users to work with data in mixed projections, because they will no longer have to manually populate PROJECTION blocks for their layers. They will be able to just set PROJECTION to AUTO.

The pluggable rendering upgrade is mostly of interest to programmers, but because it will clean up the plumbing in drawing maps, it will allow new features like KML, PDF and SVG output to be added much more easily. In fact, Assefa is currently working on KML output, using the new rendering design.

Keeping to himself quietly, Alan Boudreault is tying the XML Mapfile more tightly into MapServer. In the last revision, XML Mapfiles could be transformed to .map format with a utility. In the next revision, it will be possible to use them directly from the MapServer CGI program.

Over on the Geoserver side, Andrea Aime arrived from Italy last night, and today is adding the WMS GetStyles operation to Geoserver. Andreas Hocevar is working on tying together printing support in Geoserver and GeoExt. The scripting engine crew continues to beaver away on Javascript/Python/Scala scripting in Geoserver.

In PostGIS land, Olivier Courtin has blasted a pile of changes into PostGIS trunk, working on moving GML/KML/SVG support down into the core geometry library, where they will be easier to reuse. On a similar tack, I've been working on writing a new WKT emitter, that is easier to maintain and supports ISO WKT for extended types and dimensions.

Thanks again to our sponsors! In an hour we will be settling in to watch the Canada/USA hockey game on the big screen in the Open Plans penthouse. Go Canada!

Azavea LizardTech Coordinate Solutions
OpenGeo qPublic.net Farallon


Update: Canada disappoints! I blame Brodeur.
 

Clever ElephantNYC Sprint: Day 0

Here we go! 23 programmers are winging their way to the Big Apple to take part in the New York code sprint, combining coding talent talent from MapServer, PostGIS, GDAL, OpenLayers, Geoserver, LibLAS, and, and, and!

I am in the air right now, and am looking forward to meeting up with the sprinters at the Broome Street Bar (363 W Broadway) this evening.

Thanks to our 2010 sprint sponsors, for keeping us well supplied with food, drinks and coffee throughout this busy week!

Azavea LizardTech Coordinate Solutions
OpenGeo qPublic.net Farallon

SlashgeoSourcemap.org - Open Supply Chains Mapping

A friend sent me a link to the open source project Sourcemap.org. From their about: "Sourcemap helps you find and share the stories behind products. Your everyday product choices have a significant impact. Some decisions have impacts that stretch across the world, whereas others are regional. [...] We want to empower organizations to connect with their consumers by sharing their product stories. Sourcemap is an open source project dedicated to tracking, documenting, and mapping where all of the components for our everyday goods come from. We believe transparency is the first step towards global supply chain improvement"

Read more of this story at Slashgeo.

SlashgeoRepossession Men Using New Technology To Track Cars

Here's the last geo-related story that Slashdot discussed over the weekend: Repossession Men Using New Technology To Track Cars. Their summary: "The NY Times has an article about how real-time license plate scanning is changing the car repo business. MVTRAC is one of several companies providing technology to track car license plates automatically, in order to populate private databases. This new tech is used by car repo companies to help banks or other lenders repossess cars; by police to find stolen cars or to locate ticket scofflaws; or really for whatever application MVTRAC and its competitors feel like pursuing, as the new-found industry lacks any kind of government oversight."

Read more of this story at Slashgeo.

SlashgeoGaming With GPS On Your Smartphone

Slashdot ran another geo-story this weekend: Gaming With GPS On Your Smartphone. Their summary: "If your handset doesn't get you out and about, tramping through mud, climbing around and hunting for hidden treasure, then something needs an upgrade. The iPhone, Blackberry's Storm and Bold lines, and many Symbian and Android handsets, now sport GPS, which makes your smartphone the ticket to join a global movement of outdoor games. These are outbound challenges that pit teams and solo players against themselves and each other in the search for hidden treasure, undiscovered landmarks, and hidden spots all over the world. This article delves into several of the best smartphone-friendly real-world games, each of which is a bridge between the online and offline worlds." We mentioned geo-games quite a few times in the past, please do a search to find them.

Read more of this story at Slashgeo.

SlashgeoGoogle Introduces Photosynth-like Support To StreetView

Found on slashdot : "Google has launched a competitor or counterpart to Microsoft's Photosynth, which employs user-contributed photos of much-photographed sites to supplement the street-level view in an immersive way. Google's offering is called simply Navigate through User Photos, and unlike Photosynth — which requires Sliverlight and therefore is not available on Linux — is implemented in Flash. This YouTube video (also embedded at the link above) offers a quick tour of the new feature, which can use photos uploaded to Panoramico, Flickr, and Picasa."

Here's the official Google Lat Long entry about the new major feature, screenshots included.

Read more of this story at Slashgeo.

February 28, 2010

SpatialguruWhat book do you need?

(ED: Enabling comments might help.. sorry about that, should work now. TM)

I talk a fair bit with various folks about book ideas they or I have. I'm curious on your thoughts for potential new books that might be popular - what's the next big "geo" book that you think you, your colleagues, the world at large needs?

Where do these books leave off? Or what new waters need to be charted?

February 26, 2010

Mateusz LoskotGIS-Lab joins Planet OSGeo

OSGeo FoundationMaxim Dubinin syndicated GIS-Lab blog with the Planet OSGeo aggregator.

A few words about GIS-Lab from their website:

GIS-Lab – informal non-commercial community of GIS/RS specialists, we grow ourselves and help grow others.

GIS-Lab exists since April 2002 as an independent online resource specializing in geographic information systems (GIS) and remote sensing (RS). At present, the site is primarily oriented towards Russian-speaking GIS community, however, we do our best to translate as many materials as possible into English.

The GIS-Lab is the very first blog in Russian language syndicated with the Planet OSGeo, what makes the planet yet more international geo-caffee.

Mateusz LoskotSqlGeometry and POINT EMPTY in WKB

Inspired by question Paul Ramsey asked today morning on IRC, I’ve inspected what kind of Well-Known-Binary output gives SqlGeometry for EMPTY geometries of all the seven geometry types as specified in OGC SFS. The SqlGeometry class is available from SQL Server System CLR Types for .NET Framework. Here we go.

I checked Well-Known-Binary output as returned by the SqlGeometry method STAsBinary(). Here is a small test program written in C#:

using System;
using System.Linq;
using Microsoft.SqlServer.Types;
namespace SqlGeometryEmpty
{
  class Test
  {
    static void Main(string[] args)
    {
      foreach (string type in
         Enum.GetNames(typeof(OpenGisGeometryType)))
      {
        string wkt = type.ToUpper() + " EMPTY";
        SqlGeometry geom = SqlGeometry.Parse(wkt);
        byte[] wkb = geom.STAsBinary().Buffer;
        string wkbhex = string.Join("",
          wkb.Select(
            b => b.ToString("X2")).ToArray());

        Console.WriteLine("{0}\n{1} ({2} bytes)\n",
          wkt, wkbhex, wkb.Length);
      }
    }
  }
}

The first observation is that WKB of EMPTY geometry for all types is returned as a a slightly different binary. All the binary forms are truncated to nine bytes. The first byte indicates endianness as expected. The second chunk of four bytes indicate geometry type. It is exactly as defined in OGC specifications. The third chunk of remaining four bytes are set to Zero and seem to play a role of size specifier: number of points in LINESTRING or number of rings in POLYGON, number of points in MULTIPOINT, and so on. This makes another observation that WKB for EMPTY is reported as a collection of primitive components.

The difference in binary of WKB of EMPTY geometry I mentioned is in that the actual type of input geometry is preserved, so there seems to be no implicit translation to geometry of some other type.

So far so good but not for too long. In fact, SqlGeometry implicitly casts POINT EMPTY to MULTIPOINT EMPTY geometry with the WKB of the following form (in hex):

010400000000000000

Here is complete output of the test program above:

POINT EMPTY
010400000000000000 (9 bytes)

LINESTRING EMPTY
010200000000000000 (9 bytes)

POLYGON EMPTY
010300000000000000 (9 bytes)

MULTIPOINT EMPTY
010400000000000000 (9 bytes)

MULTILINESTRING EMPTY
010500000000000000 (9 bytes)

MULTIPOLYGON EMPTY
010600000000000000 (9 bytes)

GEOMETRYCOLLECTION EMPTY
010700000000000000 (9 bytes)

A word about how PostGIS behaves. PostGIS reports GEOMETRYCOLLECTION EMPTY, regardless of actual type of input EMPTY geometry. It is in hex form:

010700000000000000

Generally, there is not many choices of how to report EMPTY geometry in clear and usable way and a form of collection with size equal to Zero seems to be the most appropriate choice. POINT EMPTY reported with type set to POINT (010100000000000000) would be ambiguous as feels like truncated or invalid form of POINT(0 0), especially in programming languages like C where native dynamic allocated arrays do not carry information about their size. IOW, geometry type is not enough information to process binary form of POINT EMPTY properly.

Reporting EMPTY geometries as a collection is a useful convention that seems to work well. PostGIS behaves about it in the very consistent manner reporting one type for all empties. SqlGeometry, so SQL Server, forces programmers to write a few more lines of code to handle all the possible cases. Yet another original exotic solution from Microsoft.

Consistent API is a bless!

Update: consistent specification of interface is even better.

SlashgeoEU Says Google StreetView Violates Privacy

Slashdot discusses a story named EU Says Google Street View Violates Privacy. Their summary: "upto0013 notes the latest spot of trouble for Google in Europe: the EU says that Google's Street View images violate privacy laws. The EU's privacy watchdog asked Google to notify cities and towns before photographing (Google says it does this already) and to delete original photos after 6 months (Google keeps them for a year and says it has reason to do so). "[The privacy official] said that the company should revise its 'disproportionate' policy of keeping the original unblurred images for up to a year, saying improvements in Google's blurring technology and better public awareness would lead to fewer complaints — and a shorter delay for people to react to the photos they see on the site. Complaints about the images put online would usually be checked against the original photos""

Read more of this story at Slashgeo.