Surveying, Mapping and GIS

Exploring all aspects of mapping and geography, from field data collection, to mapping and analysis, to integration, applications development and enterprise architecture...

  • Geospatial Technology, End to End...

    Exploring all aspects of mapping and geography, from field data collection, to mapping and analysis, to integration, applications development, enterprise architecture and policy

Red States, Blue States...

Posted by Dave Smith On 11/06/2008 11:27:00 PM 0 comments

Mark Newman, of the University of Michigan Department of Physics and Center for the Study of Complex Systems, has once again developed some interesting visualizations of the latest election outcome. He examined the traditional red-state/blue-state view:



and then went on to a cartogram of the same, based on population:


However, this only accounts for popular vote. Newman also, interestingly, shows us a cartogram of vote by electoral college, where for example we can note Wyoming as doubling in size.

The next set of visualizations deals with county-level views, to drill down to the next level below states - here the urban/rural divide can be noted, as well as some other geographic trends.

Newman also provides further nuance, with a series of maps and cartograms showing a linear graduated color scheme, based on percentages of voters voting either Republican or Democrat:



And then, a population-based cartogram of the same:



Newman provides considerable additional insight and several more maps and visualizations at his website: http://www-personal.umich.edu/~mejn/election/2008/.

UPDATE: Per Andy Anderson on the NEARC-L listserve (Northeast Arc Users Group),
The Gastner-Newman cartogram software has been implemented as an ArcScript by ESRI's Tom Gross: http://arcscripts.esri.com/details.asp?dbid=15638

Posted by Dave Smith On 11/03/2008 05:42:00 PM 1 comments

What's on my mind?



From Wordle, populated with my Blog's atom feed, capturing the most recent blog entries. Wordle analyzes the content and assembles a collage of words, with emphasis placed on words not in common usage, according to how often these words are used... Geospatial... Mapping... Integration... Technology... A few little trends that I didn't expect, but all in all, good stuff.

'Twas the Eve before Election Day...

Posted by Dave Smith On 11/03/2008 12:59:00 PM 0 comments

As we come up on this eve before Election day, I will pass along this humorous, yet true item from my friend Gene Kooper, Executive Director of the Professional Land Surveyors of Colorado.

The below topo map fragment is from the Georgetown, CO 7 1/2 minute quad topo. In case you think it's bogus, the NGS Data Sheet is included. Regardless of your political views, please exercise your right to vote.

Whether you believe the brass cap is just a "pimple on a Grand Ol' Mountain" or a "Proud Shining Beacon of Democracy" atop a minor hill in the shadow of the Continental Divide, it doesn't matter!

In the end, we are all Americans.

GET OUT AND VOTE TOMORROW!!





1 National Geodetic Survey, Retrieval Date = NOVEMBER 3, 2008
KK2035 ***********************************************************************
KK2035 DESIGNATION - DEMOCRAT
KK2035 PID - KK2035
KK2035 STATE/COUNTY- CO/CLEAR CREEK
KK2035 USGS QUAD - GEORGETOWN (1974)
KK2035
KK2035 *CURRENT SURVEY CONTROL
KK2035 ___________________________________________________________________
KK2035* NAD 83(1992)- 39 42 51.68709(N) 105 44 07.70429(W) ADJUSTED
KK2035* NAVD 88 - 3781. (meters) 12405. (feet) VERTCON
KK2035 ___________________________________________________________________
KK2035 LAPLACE CORR- -11.78 (seconds) DEFLEC99
KK2035 GEOID HEIGHT- -12.45 (meters) GEOID03
KK2035
KK2035 HORZ ORDER - THIRD
KK2035
KK2035.The horizontal coordinates were established by classical geodetic methods
KK2035.and adjusted by the National Geodetic Survey in January 1993.
KK2035
KK2035.The NAVD 88 height was computed by applying the VERTCON shift value to
KK2035.the NGVD 29 height (displayed under SUPERSEDED SURVEY CONTROL.)
KK2035
KK2035.The Laplace correction was computed from DEFLEC99 derived deflections.
KK2035
KK2035.The geoid height was determined by GEOID03.
KK2035
KK2035; North East Units Scale Factor Converg.
KK2035;SPC CO C - 513,640.813 894,210.473 MT 0.99999314 -0 08 54.6
KK2035;SPC CO C - 1,685,169.90 2,933,755.53 sFT 0.99999314 -0 08 54.6
KK2035;UTM 13 - 4,396,313.019 436,959.085 MT 0.99964893 -0 28 11.8
KK2035
KK2035! - Elev Factor x Scale Factor = Combined Factor
KK2035!SPC CO C - 0.99940919 x 0.99999314 = 0.99940233
KK2035!UTM 13 - 0.99940919 x 0.99964893 = 0.99905833
KK2035
KK2035: Primary Azimuth Mark Grid Az
KK2035:SPC CO C - GRINDAL 152 24 17.9
KK2035:UTM 13 - GRINDAL 152 43 35.1
KK2035
KK2035|---------------------------------------------------------------------|
KK2035| PID Reference Object Distance Geod. Az |
KK2035| dddmmss.s |
KK2035| KK2034 GRINDAL APPROX. 8.1 KM 1521523.3 |
KK2035|---------------------------------------------------------------------|
KK2035
KK2035 SUPERSEDED SURVEY CONTROL
KK2035
KK2035 NAD 83(1986)- 39 42 51.68858(N) 105 44 07.70290(W) AD( ) 3
KK2035 NAD 27 - 39 42 51.73222(N) 105 44 05.69354(W) AD( ) 3
KK2035 NGVD 29 (07/19/86) 3779. (m) 12398. (f) VERT ANG
KK2035
KK2035.Superseded values are not recommended for survey control.
KK2035.NGS no longer adjusts projects to the NAD 27 or NGVD 29 datums.
KK2035.See file dsdata.txt to determine how the superseded data were derived.
KK2035
KK2035_U.S. NATIONAL GRID SPATIAL ADDRESS: 13SDD3695996313(NAD 83)
KK2035
KK2035 HISTORY - Date Condition Report By
KK2035 HISTORY - 1903 MONUMENTED USGS
KK2035 HISTORY - 1956 GOOD USGS
KK2035
KK2035 STATION DESCRIPTION
KK2035
KK2035'DESCRIBED BY US GEOLOGICAL SURVEY 1956 (EEM)
KK2035'RECOVERED AS DESCRIBED.
KK2035'
KK2035'STATION LOCATED 2 MI. W. OF GEORGETOWN, ON REPUBLICAN MOUNTAIN.
KK2035'
KK2035'POINT IS BEST REACHED BY FOLLOWING TRAIL UP FIRST PROMINENT GULCH N.
KK2035'OF GEORGETOWN, JUST AT THE CITY LIMITS. FOLLOW THIS TO SUMMIT OF
KK2035'MOUNTAIN, THENCE S. ALONG RIDGE TO HIGHEST POINT.
KK2035'
KK2035'STATION MARK--STANDARD BRONZE TRIANGULATION TABLET CEMENTED IN SOLID
KK2035'ROCK NEARLY AT HIGHEST POINT OF MOUNTAIN, STAMPED ---DEMOCRAT
KK2035'1903-1956---.
KK2035'
KK2035'REFERENCE MARK NO. 1--STANDARD USBR (1936) BENCH MARK TABLET CEMENTED
KK2035'IN SOLID ROCK, 5.07 FT. DISTANT FROM STATION MARK,
KK2035'S 36 DEG 40 MIN W

Happy Halloween!

Posted by Dave Smith On 10/31/2008 10:45:00 AM 0 comments

Happy Halloween!

Mapping Integration with BusinessObjects

Posted by Dave Smith On 10/10/2008 11:08:00 AM 1 comments

I got to spend a little time in the last week or two examining integration of web mapping with BusinessObjects XI R2 Web Intelligence, for a little turbo proof-of-concept application - I hadn't seen many folks talking about integrating web mapping and BO, so I figured I would share my own experiences. Though I'm certainly no BusinessObjects guru, I was able to successfully do some basic integration, with the help of the BusinessObjects "Masher" application available on their "Labs" site: http://labs.businessobjects.com/mashup/default.asp.

What BusinessObjects presents via the Masher is a dynamically-named div tag, which is accessible via container in JavaScript, which is where your rendered DHTML content needs to be targeted. They also then present three basic functions for housing and executing all user-developed JavaScript, init(), mash() and dispose() - the intent of which is self-evident. They also provide some JavaScript objects, pivot and parameters - pivot contains the BO report table contents, and parameters contains values that can be preset and/or passed when initializing or formatting the template.

So, essentially just a matter of figuring out what's available to latch on to and use - and how to leverage what BO provides to permit building the application. For this proof-of-concept, there had been some discussion and interest in Google Maps from the customer, so - for the sake of simplicity, I chose to just stick with Google Maps. In reality, I'd be fairly confident in suggesting that virtually any web mapping framework that supports DHTML and JavaScript should be usable with this same approach, e.g. OpenLayers, Microsoft Virtual Earth, or others.

So, ultimately - the results:

"Turn table into..." (the intent being as simple as "click a button to turn this table or graph into a map")

Being a table, the application has to be able to understand and use designations in the underlying table, from it's "geography" dimension such as "AZ" to latch on to the appropriate mapping geographies. So... Turn map into...


Here, I have my newly published template showing up among the choices as "Google Maps Equal Interval Polygonal Choropleth Map", and click on "OK" - Et voila!


For this quick-and-dirty proof of concept, I just wrote some JavaScript that examines the array of pivot data and the range of values, and then just does some quick calculations to create a lookup table and legend. One trick was to dynamically rewrite BO's generic container div tag to embed two new div elements inside of it, one which I use to hold the map, and a second, which I use to hold my legend - other elements as well as a hidden control panel could be embedded here also.

For generating the classification and legend, a similar type of logic and approach could of course also be applied to a variety of classification schemes such as standard deviations, natural breaks, and so on. I then examine the pivot table to see what geographies are represented, display them on the map rendered with their appropriate hex color values matching their respective measures from the lookup table and add a Google Maps openWindowHtml popup for the click event handler for each location. Within the pivot object, labels are also provided - and given a table with multiple columns of measures, these could either be managed with code to run analysis on both, just thematically map the first, and display the remainder in the popup, and so on - a variety of possibilities for the adventurous coder.

Want to change the number of classification breaks? Didn't like the color scheme?

Within the template, there is opportunity to define parameters - here I set it up to allow me to change the number of classification breaks, starting color, ending color, and so on. And the BO folks nicely even include a color picker. So, for example, I can then retrieve parameters.startColor as a hex value, split it into RGB values and compute even jumps for my color ramp to parameters.endColor, based on the parameters.numBreaks value that the user specifies.

Like so... (deliberately odd colors selected to show the difference...)


Additionally, mash() fires every time the underlying table's filters or results are changed, which is nice, as the map updates accordingly.

Some additional development insights - I decided to keep a lot of my functions in an external .js library - one issue I encountered is that, given everything was encapsulated in the three BO Masher functions init(), mash() and dispose(), whenever I needed to create and use global variables, I needed to do so explicitly, e.g. window.myVarName. Additionally, I noted that BusinessObjects XI R2 uses the dojo JavaScript library... so for fans of dojo, that also provides a great deal of functionality and capability to leverage. As with anything, potential collision with other pieces of code or cross-browser compatibility issues are also a question, but through judicious naming conventions and error handling, these can generally be addressed.

So, while perhaps my turbo solution may not the most elegant, it's nonetheless illustrative that web mapping integration into a BO platform is definitely doable and definitely functional, in this case developed in just a few days' time with a little quick hackery, even for someone who may have web mapping expertise but little prior integration or development experience with a platform like BusinessObjects (such as myself in this instance) - hopefully this will be an encouragement to others who are looking to merge BI tools with geospatial technology, and likewise, hopefully the BI folks will continue to increasingly see the value of geospatial visualization in addition to their charts, graphs and dashboards. I have already seen some very interesting visual geographic trends popping out of the data, which is definitely not anywhere near as evident in some of the more standard BI views. Other possibilities include drilldown, however I found that the masher does not handle hyperlinks embedded in tables well - but within BO, URL-driven access to reports to allow drilldown is definitely a possibility as well.

What the future of the BO Masher is in the future is uncertain, but the potential use case and benefit of such integration is substantial.


In the long run, there will definitely be an ever-emergent intersect between these technologies and tools. All in all, another fun little proof-of-concept. Next, I may want to take on BusinessObjects Xcelsius 2008 and Flex-based integration with web mapping frameworks - will remain to be seen, depending on how various other projects go over the next few months...

Search