Planet Geospatial

JGrass Tech TipsSTAGE - Desktop Tools (also) for Geopaparazzi

With the new upcoming geopaparazzi 4 release a few issues had to be solved:
  1. What should I do with all my old geopaparazzi 3 surveys? How do I integrate them with new data?
  2. What do I use to export data from a geopaparazzi 4 project to my GIS environment?
Well, we solved both the above problems inside STAGE, a Spatial Toolbox And Geoscripting Ennvironment, which is the tool we develop and use for the JGrasstools library for environmental modelling.

For those asking if it is the same Spatial Toolbox that comes with uDig, the answer is yes and no. Yes, because it is the same source code. And no, because since uDig is in the process of (and a bit stuck in) migrating through the Locationtech incubation, we needed to step forward with the geotools versions. So see STAGE as the temporary solution to work with the Spatial Toolbox, until we can enhance the uDig version again.

So where do I get STAGE and how do I use it for Geopaparazzi? A video tutorial showing it all can be found here:


ADDENDUM: since it has been asked, this is the link to the current download area of STAGE:

Directions MagazineSuperGIS Assists South Africa in Economy Planning and Development

BoundlessOpenGeo Suite 4.1.1 Released!

We’ve been hard at work fixing bugs, and polishing OpenGeo Suite, so we’re proud to announce the release of OpenGeo Suite 4.1.1!  This release focuses exclusively on performance and stability updates.

For those who don’t regularly follow our blog, the OpenGeo Suite 4.1 release included many new features and improvements:

Try it!

Download 4.1.1 and try our census map tutorial or heat map tutorial to learn more. Details about this release are included in the release notes and, as always, we strongly advise you to read the upgrade instructions and backup your data before installing.

The post OpenGeo Suite 4.1.1 Released! appeared first on Boundless.

How 2 MapAttend a workshop at FOSS4G

I am having a great time going over workshop material for FOSS4G.  I have two workshops on the go and am totally looking forward to seeing everyone next week in Portland.

GeoServer Cartography and Styling

I have had the privilege of teaching GeoServer previously - and the one consistent request is for more on mapping and styling! One day introduction course - more mapping and styling. Two day intensive course for web developers - more mapping and styling. Five day course with a day devoted to Styling? More mapping and styling please ...
With this workshop I can finally answer this request! The use of the CSS extension (to generate SLD files) finally allows a workshop to cover enough ground!
Dynamic Symbology Example
For everyone attending this workshop you are in for a real treat.  Thanks to David Winslow for the CSS extension, and thanks to Boundless for the time and inspiration to pull this course together.
As indicated in the course description lab machines are provided, show up, have fun and learn a ton.

GeoTools DataStore Workshop

I am thankful for the opportunity to teach a GeoTools workshop (programming workshops are occasionally a hard sell next to running applications like GeoServer). And this is not any GeoTools workshop, it is an intermediate workshop on how to create a DataStore from scratch.
ContentDataStore and Friends
A lot of work has gone into ContentDataStore (shown above). This really is the underpinnings of the "next-generation" database, shapefile and the recently announced wfs-ng client.
This workshop marked as BYOD, meaning you can relax in the comfort of your own development environment.

FOSS4G workshops - sign up now!

Time and time again workshops are listed as the highlight of the foss4g experience. One of the key advantages of open source is a chance to follow up that key hands-on experience with the opportunity  to take the software home to show your friends.
There has been some experimentation with offering lightweight labs (read: no additional cost) in parallel with the main program. While a fun idea, it is kinder to all involved to keep the number of conference tracks to a minimum to avoid that feeling of "missing out" no matter what room you are in.
Those attending GeoServer Cartography and Styling are really going to have a great time. For those lucky enough to be in the GeoTools DataStore Workshop it is going to be a chance to stretch your mind!

Why not make workshops the highlight of your foss4g?
  • If you have not signed up for FOSS4G what are you waiting for! The workshops on offer are incredible and represents some of the best value in open source training available. The registration page appears to still be open :)
  • If you already made your plans and were skipping the workshops to save some money - don't! The workshops are cheap-as-chips. Come a day early as there is no substitute for the hands-on goodness of a workshop.
As a final plea: you are going to come back (bruised and battered) from a week of the most amazing geospatial software, friendly community, and buzz of ideas and enthusiasm. As you crawl into work on Monday and are asked "how was it?" - make sure to attend a workshop so you have something to show.
If you cannot make the trip I would be remiss if I did not mention the online training/certification offered by Boundless. The material is extensive and Mike and Ben have done a great job introducing each section with videos.

BostonGIS BlogPostGIS sessions at Postgres Open 2014 Chicago not too late

If you haven't signed up for our Postgres Open 2014 PostGIS tutorials, there are still a few tickets available, but time and space is running out.

For those of you who've already signed up for our tutorials in September 17th, 2014, keep an eye on this page: Not much to see there yet, but we'll be posting content there before the tutorials as well as the examples so you can flaunt your mastery of cutting and pasting.

VerySpatialOf place and space – the VerySpatial book club

unruly placesAs we have mentioned on the podcast a couple of times, we are kicking off a book club to focus on Geography themed books. We will focus on popular and trending books with an eye towards texts that are current and less expensive (under $20). We are using Goodreads’ group functionality to host the book club. We encourage you to go over and check out the group and join us.

Our first book is Alastair Bonnett’s Unruly Places: Lost Spaces, Secret Cities, and Other Inscrutable Geographies, which will be discussing through September. As this is part of VerySpatial you probably expect that we hope to have a conversation with each of the authors on the podcast. Our talk with Dr Bonnett and future authors will come out mid-month to give us time to chat about the book before and after the podcast. You can get sense of the book by listening to Dr Bonnett’s NPR interview from July.

We are already searching for future books, so let us know if you have any suggestions. If you are an author or a publisher, please let us know about your book so we can put on our list of potential reads. One thing we plan to do as we get a clear schedule (both for the discussions and future books) is to give away a few copies of the book we choose. To that end, keep an eye on the VerySpatial Twitter account later this week as we give away a couple of ebook versions of this month’s read.

AnyGeoDev Tip – Learn Python in 24 Hours!

TweetPython, all the geeks are learning Python, most employers are craving employees who have some grasp of the popular language… here’s a couple of resources that could help kick start you with some desirable skills: Python: Learn Python in 24 … Continue reading

LiDAR NewsCelebrating Labor Day

It constitutes a yearly national tribute to the contributions workers have made to the strength, prosperity, and well-being of our country." Continue reading →

Click Title to Continue Reading...

LiDAR NewsLidar and Rowing

I was rowing on the Exeter River the other day when I heard a helicopter approaching. It was flying low and slow. I realized it was collecting lidar on the powerline ROW that is close to our...

Click Title to Continue Reading...

Between the PolesFirst Worldview-3 images with 40 cm resolution available for download

Worldview-3 Madrid airport 24700@2x.pngDigital Globe’s WorldView-3 Earth observation satellite was launched August 13, the first commercial Atlas mission to fly out of Vandenberg.  WorldView-3 is the first multi-payload, super-spectral, one-foot-resolution commercial satellite. It is intended to operate at an altitude of 617 km and can collect up to 680,000 km² per day.  WorldView-3 is capable of

  • 31 cm panchromatic resolution
  • 1.24 m multispectral resolution (8 bands)
  • 3.7 m short-wave infrared resolution (8 bands)
  • 30 m Clouds, Aerosols, Vapors, Ice, and Snow (CAVIS) resolution (12 bands)

with an  average revisit time of less than 1 day. Worldview3-40-cm-resolution-examples-madrid-spain-5-638Digital Globe has received permission from the U.S. Department of Commerce to sell imagery to all of its customers at up to 25 cm panchromatic and 1.0 m multispectral ground sample distance (GSD) beginning six months after WorldView-3 is operational.

WorldView-3 is now sending images back to Earth.  Digital Globe has released some images of Madrid, but is only licensed to release images with 40 cm resolution at this time.

AnyGeo4D Fun – Holy Roller Coasters, Batman the Ride!

TweetCoasters have gone 4D according to Six Flags as the latest addition to the thrill rides at Six Flag in Texas comes via Batman the Ride… Woohoo, buckle in!  

LiDAR News50 Years of 3D

Turns out Dassault has been promoting the advantages of 3D for nearly 50 years - incredible. Continue reading →

Click Title to Continue Reading...

The Map Guy(de)Bootstrap map viewer templates

So this past week, I attended another hackathon and our hack was yet-another-twitter-bootstrap-with-openlayers concoction. The problem it seems, every time I go down this path, I lose several critical hours re-creating my desired responsive layout of a map viewer with sidebar with bootstrap CSS every time. You'd think that having done this many times now, I'd have memorised the necessary HTML markup and CSS to do this by now.

But that is just not the case, so after the event (and a good long post-hackathon sleep), I fired up Sublime Text and set out to solve this problem once and for all: A set of starter bootstrap templates that should serve a useful foundation to build a bootstrap-based map viewer web application on top of. Several hours later, there's two templates available.

A 2-column template. A full-screen map viewer with a sidebar to the left:

And a 3-column template, which has sidebars to the left and right which is reminiscent of the classic MapGuide AJAX viewer.

A key feature of both templates is that the floating sidebars are both collapsible.

On small displays, sidebars start off initially collapsed, but can be brought out through their respective toggle buttons.

You can check out the templates below:

Do you have ideas for improving my initial design and have some web design skills? Send me some pull requests.

thematic mapping blogGeotagging photos using GPS tracks, ExifTool and Picasa

I take a lot of photos while trekking, and most of the time I'm also carrying a GPS with me. As my camera don't have a built-in GPS, my photos are not geotagged while shooting. Luckily, this is an easy task if you've kept your GPS logs from the trip. 

I'm still very happy with my Garmin GPSmap 60CSx that I bought 7 years ago. By changing the setup, the GPS allows me to automatically save the tracks to the memory card. I get one GPX file for each day trekking named with the date. I can easily transfer these tracks to my computer or smartphone with a cable or a card reader. 

Before I converted to Mac, I used GeoSetter to geotag my photos on Windows. Now, I want to do it on the command line using the great ExifTool by Phil Harvey. I installed it on my MacBook using Homebrew:

brew install exiftool

After copying my GPX file to the image folder, I'm simply running:

exiftool -geotag=my.gpx ./

If you forgot to sync the camera and GPS time before your trip, you can use the geosync-option to fix it: (60:00 = 60 minutes):

exiftool -geotag=20140329.gpx -geosync=-60:00 ./

You have a lot of options, so make sure to read the "Geotagging with ExifTool" documentation. ExifTool is modifying the Exif headers of your image files, storing the location data in the same file. 

To see the result on a map, I'm using Picasa.  

Click the map pin button (bottom right) to see the map. If the positions are not shown on the map, try to right-click the image folder and select "Refresh Thumbnails". 

If you don't have a GPS track you can always use Picasa to manually geotag your photos. 

Be aware! I just learnt that social media sites like Facebook, Twitter and Instagram removes the Exif data from your images. Google+ don't. 

Now, how can you display the photos on your own map? It will be the topic of my next blog post. 

ROK Technologies BlogAdvantages of Storing GIS Data in the Cloud

Have heard that ROK has an Instant Enterprise cloud-based GIS solution? This week, I wanted to blog and walk you through the advantages of going Enterprise from the GIS data perspective. If you want to know more, please feel free to contact us.

So, what does a car need in order to operate? Fuel.

What does a GIS organization need? Data.

And why would an organization want to move their GIS data to ROK’s private cloud?

  • Scalability - Maybe you are a one person GIS shop. What happens when you grow to 5, 10, 100 employees? It is no longer realistic to pass around a shapefile or have a few file geodatabases stored on local computers. You need an SDE geodatabase with editing roles, versioning, archiving, and editor tracking. You need multiple users accessing, querying, and editing data from one spot. You need and Enterprise GIS data solution. It is time to reconcile and post.

  • Free your IT - Is your organization tired of walking on eggshells around the ole’ GIS Server in the closet while IT swears on every crash that this is the “last” raising of the dead? Has your organization considered moving to ArcSDE but lacks the core competencies that it takes to set up the geodatabase of your dreams?

  • Redundant backups, disaster recovery, multiple data centers - The cloud is a safe and secure place for your GIS data.

  • Direct edits to and from the internet - Make data edits using ArcGIS for Desktop and see them served out in real time to all of your GIS web applications. Make data edits through ArcGIS Online or your custom web app and see them return in real time to your SDE Geodatabase.

  • Anywhere access - Do I need to explain this? If you have internet, then you have data. At work, home, or on vacation…. But only if you want on vacation. Oh yea… and operating system is of no concern.

  • Building something better - Data is fuel, fuel powers the enterprise, the enterprise is in the cloud.

Allow your organization to focus on missions and goals. Start your Enterprise GIS today.

thematic mapping blogGeotagging and Picasa Web Albums API, or was it Google+ Photos?

In my last blog post, I presented a new plugin, Leaflet.Photo, that allows you to display geotagged photos from any source. Among them was Google+ Photos and Picasa Web Albums API. My plan is to use this API for my travel map, and this is why.

Does Picasa Web Albums still exist? 
It's a bit messy these days. Google is trying to transition from Picasa Web Albums to Google+ Photos, as photos are the number one things that people want to share on social networks. When you use Picasa to share your albums (Sync to Web), the album URL is now on your Google+ profile, and not on Picasa Web Albums (which is just redirecting me to Google+). This is the URL to the public album from my trip to the Trollfjord:ørnSandvik/albums/6052628080819524545

It also works with your Google+ user id:

My public Google+ web album. The album contains both photos and videos. 

The thing is, there is no Google+ API for photos and videos yet (apparently they were working on it back in 2011). But the Google Web Albums API still works on your Google+ albums.

Google Web Albums API is not the easiest API I've worked with, but it's flexible and quite fast. This is an XML feed of my public album from Trollfjord:

The user number and album id is the same as above. Or better for your JavaScript apps, a JSON feed:

And if you're still using JSONP:

If you click on any of these links, you'll see that it's not a very compact format. There is a lot of data that you don't need. Although complicated, you can select the fields you want to include in the feed. This is how I selected the following elements:
  • Photo URL: entry/media:group/media:content
  • Photo caption: entry/media:group/media:description
  • Photo thumbnail URL: entry/media:group/media:thumbnail
  • Photo timestamp: entry/gphoto:timestamp
  • Photo location: entry/georss:where

This is the new URL:,entry/media:group/media:description,entry/media:group/media:thumbnail,entry/gphoto:timestamp,entry/georss:where

While researching, I also learnt that I could use the imgmax attribute to specify the size of the photos referenced in the photo URL. Neat!

So why should I use this (relatively) old API?
Compared to other popular social media sites, Google don't strip off the meta information of your photos. Instead it uses the build in support for image metadata extensively. Hopefully Google will continue to do this, although social media sites have reasons not doing so.

This means that Google don't lock you in. I can change the location of my photos using my GPS tracks, and it's reflected where I embed my photos. I can edit the image captions in Picasa and it's stored within the image file, allowing me to write the caption once and use it everywhere.

So what is my album workflow for my travel map. Before starting my journey, I'm creating a new Google+ album. The feed from this album is attached to my map, by simply passing on the album id. While on journey, I use the Google Photos app to add photos to the album, that will automagically show up on the map as well. Back from trip, I can add and edit photos from my digital camera in Picasa and sync them to the web album.

Photos from Google+ shown on my travel map. 

PS! This blog post is not sponsored by Google :-) 

thematic mapping blogShowing geotagged photos on a Leaflet map

Using Instagram for my real-time travel map had too many limitations, so I decided to use Google+ photos or Picasa Web Albums instead. I've create a new plugin, Leaflet.Photo, that allows you to add geotagged photos to your map, from any source.

The plugin plays well with the great Leaflet.markercluster plugin, showing your photos in clusters. To make the plugin more versatile, it doesn't deal with AJAX loading or image presentation except the thumbnails on the map. Use your AJAX loader of choice, and simply pass on an array of photo objects to the plugin. 

The photo objects can include the properties you like, but the following are required:
  • lat: latitude of photo
  • lng: longitude og photo
  • thumbnail: url to thumbnail photo
I've kept the squared thumbnails of Instagram, as I think it look nicer than variable size thumbnails. Since the photos can have any dimensions, I'm using a CSS technique to crop and center the thumbnails. 

I've created three examples using Picasa Web Albums Data API, CartoDB (synced with Instagram) and Norvegiana API. With CartoDB you can easily get the required photo properties by manipulating the SQL query. Other APIs will require some data parsing before you pass on the photo objects to the plugin. All examples show the photos in a popup when you click/tap on them, but do whatever you like! On my travel map (click on "Bilder"), I'm using my own lightbox showing all photos in a cluster.

Google+ photos

Photos and videos from Google+. See the small animated GIF video thumbnails. 

Instagram / CartoDB

Instagram photos synced with CartoDB. 


Historic photos of Oslo from Norvegiana API. 

BoundlessOpenLayers 3.0 Released!

OpenLayers 3 has been a long time in the making but we’re proud to announce that the project is ready for release! This release includes a ton of new features such as an easier to use API as well as improved vector rendering and image manipulation.

While we’ve confidently supported OpenLayers 3 in production since the OpenGeo Suite 4.0 release and have long offered professional services for developers looking to build web applications, we hope this announcement marks a significant step forward in adoption of the library.

Check out some of our previous blog posts to learn more about using OpenLayers 3:

And don’t forget to check out the project website for some great documentation and examples.

OL3 vector rendering

The post OpenLayers 3.0 Released! appeared first on Boundless.

AnyGeoMake Tweets not War – NATO Canada Schools Mr. Putin on Russia / Ukraine Boundary Map

Tweet LOL, I love this one… it seems NATO Canada via Twitter was trying to set Mr. Putin and all of Russia straight by giving them a bit of a geography lesson! Using Twitter as the platform of war (make … Continue reading

thematic mapping blogMaking a real time travel map

I had to quit my trip form Oslo to Bergen already on day three - and I have to wait until August 2015 for a second try. I still got time to gain some experience in real time tracking - and mapping. Based on this experience I've made a new version of my live travel map:

This is a private project to learn new skills - where I care more about new standards and less about old browsers. I'm using CSS3 and HTML5 extensively, the the map will probably not show in Internet Explorer < 10, but it should work well on your tablet or smartphone.

My previous map was about 1 MB to load on my mobile, as I really took off mixing Leaflet, Highcharts, Ext JS, jQuery and Fancybox. I'm now left with only Leaflet and D3.js and only 72 kB gzipped JavaScript. It was a bit more work to create an elevation chart width D3.js, but it's very flexible when you get the grasp of it. I also used D3.js to create a lightbox gallery to show my Intagram photos, as it can easily replace jQuery for selectors and animations.

This is a single page application running in your browser with a CartoDB-backend. The only thing I've changed on my server is the .htaccess file to point all request to the same index.html file. Then I'm using the HTML5 History API to create nice looking URLs to different trips. I've also extended the application to support different users, but I have no plans to create a public web service.

The full application code is not available, but the different bits and pieces are and will. It's still work in progress. The next steps will be to improve the experience on touch screens, add a 3D display and maybe create a mobile app with PhoneGap.

I want to share some experiences I had when creating this map - and I would very much like your feedback!

When you visit the site, you can select between different trips. I'm creating new trips by simply adding new rows to a CartoDB-table. The track and images for each trip are fetched based on time attributes.

You can also link directly to a trip, like:

You can mouseover or click the track to se place names and altitudes. To improve the performance, I'm only drawing the line and not the individual points. To find the nearest point to a mouse/tap position, I'm doing a nearest neighbour search.

Actually I'm drawing two track lines; the stippled line, and a thicker invisible line to make it easier to catch mouseover and click events, especially on touch devices. This is the line shown with less transparency:

The image above show the popup, with terrain type and a weather forecast for this specific location at the time I was there. The track interactions are also linked to the elevation chart:

If you mouseover the track, the same position will show on the elevation chart, and vice versa. Both the track and the chart show the live position with a pulsing marker. I'm also marking the overnight stays, as my SPOT device allows me to send custom messages. The elevation chart reads right to left, as this was the direction of my trip. The direction can be changed for each trip.

If you navigate around in the map, you'll see that the elevation chart is changing to reflect the view:

This is done using Crossfilter to quickly select the points within the map view, although my iPad gets a bit sluggish with instant updates while dragging.

Instagram photos are displayed on the map using the great Leaflet.markercluster plugin:

The photos are shown in a lightbox where you can click/tap through the photos in a cluster (no swipe support yet):

All elements are responsive and should adapt to different screen sizes. I've also made a build process with Grunt to concatenate and compress all the CSS and JavaScript into single files. LESS are used to get rid of all the browser prefixes in CSS. I also made a custom build of D3.js to only include the bits I used, reducing the size to one third.

Continuing the work when there are new trips coming up!

All Points BlogGIS Health News Weekly: SF Earthquake Impacts Sleep, Registries of Medically Vulnerable Citizens

Fitness Trackers Identify Sleep Disruption During SF Earthquake RE Sieber ‏@re_sieber  VGI & the quantified self: Fitness tracker UP shows spatial distribution of sleep disruptions near the earthquake The blog post from Jawbone, maker if a fitness device shows that more people... Continue reading

All Points BlogAnd Now Google Does Drones - Project Wing

Google, too, is experiementing with drones. From the Google X team comes "Project Wing." Several media outlets reported today Google's experimentation with package delivery using their own drone design. According to the Wall Street Journal, Google said a 5-foot-wide single-wing... Continue reading

LiDAR NewsDigitally Documenting the Lincoln Memorial

DJS donated its time and resources to gather millions of data points in order to capture accurate, reliable measurements of the monument, both interior and exterior. Continue reading →

Click Title to Continue Reading...

AnyGeoASPRS UAS Symposium Reno Looks At UAV, UAS, Drone Technology

TweetYou may have noticed the topic of UAVs and UAS technology making loads of news lately. If UAS technology interests you then take note of an interesting event from ASPRS coming up this fall in Reno, Nevada – The UAS … Continue reading

Between the PolesSmall utilities turning to "smart grid as a service"

Globally, smart grid technology has emerged to help utilities deal with challenges such as increased reliability, the need to reduce non-technical losses, distributed renewable generation, and electric vehicles, but for small to medium utilities, access to IT resources limits their ability to implement smart grid solutions.   Back in 2010 McKinsey was already seeing AMI vendors starting to look at options for providing AMI services using a "software as a service" model.  Now power industry IT vendors and service providers are increasingly offering managed services solutions, referred to as smart grid as a service (SGaaS).

I blogged previously about Burlington Hydro, a small utility in an affluent part of southern Ontario that is integrating into an intelligent network many aspects of what is typically included in smart grid including intelligent network devices, self healing networks, smart meters, distributed generation, electric vehicles (EV) , factory ride-through systems (enables factories to continue functioning through outages), battery-based electric storage, bidirectional communications network linking the intelligent devices to the control center, and dramatically increased volumes of real-time data.  Burlington Hydro has been working with a local IT consulting company AGSI to develop systems to manage their smart grid deployment in a real-time, big data IT environment.  But what about small utilities who don't have the in-house skills or the revenue stream to support bringing in an outside IT consulting company ?

Back in 2012 at an annual Geospatial Information and Technology (GITA) Pacific Northwest Conference, Terraspatial Technologies gave a presentation on a hosted or SaaS (software as a service) solution for small utilities.

Hosted solutionPlantWorx Cloud

What struck me as as so unique about what Terraspatial offers and which is so valuable to small utilities is that it is a hosted solution. Basically, all the utility needs to install at its site is a browser, everything else is running in the cloud.  The most important benefit of a hosted solution like this is that it has the potential to provide a high level of IT security without the need to increase the level of IT capacity that the utility needs to maintain in house.

Terraspatial's hosted solution is called PlantWorx for electric power utilities. The design goals of the solution that Terraspatial developed are very relevant to small utilities. 

  • Hosted, which means that the utility does noPlantWorxt need to own or manage servers or software. 
  • Secure because it relies on the security of a major cloud hosting provider such as Rackspace or Amazon that can provide a level of security, including protection from internal tampering, role-based access by users, protection from external  threats, the latest encryption, redundancy and back-ups, ISO certified data centers, and mirrored servers for persistent backup, in other words a much higher level of security than the average utility network is capable of.
  • Accessible from the office and the field
  • Integrated solution that supports staking through to accounting and reporting with interfaces to CAD, GIS, customer information systems, accounting and billing systems, materials management, and other systems

Now according to Navigant Research the growth in cloud-based services has increased the awareness of SGaaS. Offerings are available for a host of smart grid applications in several categories, including home energy management (HEM), advanced metering infrastructure (AMI), distribution and substation automation (DA and SA) communications, asset management and condition monitoring (AMCM), demand response (DR), and software solutions and analytics. 

The complexity of smart grid deployments, systems integration, spatial analytics, real-time big data and cyber security and limited internal IT capacity are some of the drivers behind a growing market for SGaaS. Navigant Research forecasts that the global SGaaS market will grow from just under $1.7 billion in 2014 to more than $11.1 billion in 2023.

thematic mapping blogLive tracking in Lofoten and Vesterålen

Last weekend, I had a great trip to scenic Lofoten and Vesterålen in Northern Norway. I brought my tracking gear to test my new real time travel map. How did it go?

Our first trip was to Trollfjord, a 2 km long fjord with a narrow entrance and steep-sided mountains. It's a famous tourist spot in the Lofoten archipelago, but not many leave the boat at the fjord's end to hike up to the Trollfjord hut.

The small Trollfjord hut.

Trollfjord goes in an east-west direction, and I expected to be in the "satellite shadow" being far north and having steep mountains blocking the sky towards the south. My good old Garmin GPSmap 60CSx did well in the rugged landscape, while my satellite SPOT messenger had some difficulties finding and sending positions. 

Live track from my SPOT messenger (interactive map).

GPS track from my Garmin GPS.

The great thing of using CartoDB to sync my SPOT-data, is that you can edit your positions with ease after the trip. 

Tip! The default basemaps in CartoDB are not very detailed for Norwegian mountains, but you can easily add a basemap (Topo2) from the Norwegian Mapping Authority ("Kartverket") with this URL:{z}&x={x}&y={y}

Changing the basemap of CartoDB.  

It's then easy to edit or delete the wrong positions:

Be aware! I was struggling editing my CartoDB-tables from my smartphone, but it was not possible to edit the content of table cells. Hopefully, the CartoDB team will make their editor more mobile friendly in the future. 

Another issue was to get the correct time and position of Instagram photos on the map. Trollfjord is an area with poor mobile coverage. When I took photos with the Instagram app it was struggling placing the photos on the map. It worked better if I took the photos the the built-in camera app of my phone (with geotagging activated) and then posting the photo with the Instagram app. 

If I didn't have mobile coverage, I would just retry posting the photo when back to civilisation. The time associated with the image is when it was sent and not taken. I'm going to check if I can extract the shooting time from the Exif headers of the image.

Our second trip went through Møysalen national park, one of very few national parks in Norway that goes all the way down to sea level. 

Møysalen national park

Here we went in a south-north direction, and my SPOT messenger did better as there was less mountains blocking the satellites. 

Map and elevation profile of a 2-day hike through Møysalen national park (interactive map).  

The web service from the Norwegian Mapping Authority ("Kartverket") seemed to have some technical troubles this weekend, so the altitude values and place names was not updated instantly. When the web service was failing my script stopped and the weather report from was not fetched either. I'm going to improve the error handling before my next trip. 

I also took a lot of photos with my compact camera while trekking, and I would like to show these on the map as well. My camera don't have a GPS receiver, but I should be able to geotag my photos by using my GPS track. It will be the topic of my next blog post. In the meanwhile, here are some of the photos: 

Hurtigruta in Trollfjord

Trollfjord by night





Sea eagle in Raftsundet.



Cold and fresh bath at Snytindhytta.

All Points BlogGIS Education News Weekly: USC Certificates, CyberGIS, Stanford Climate Change Story Map

New USC Certificates The Spatial Sciences Institute housed at USC Dornsife has added two new certificate programs. The Graduate Certificate in Geospatial Leadership and the Graduate Certificate in Geospatial Intelligence offer GIST professionals additional expertise in their... Continue reading

Geoinformatics TutorialFixing a Map Projection Issue for the Next SAR Toolbox

In the Nest Sar Toolbox you have a choice of coordinate systems:

For some of these, however, Nest reports the error "Axis Too Complex".

I compared a map projection that works with one where “Axis too complex” error is reported. Map projections that work contain these lines:
AXIS["Easting", EAST],
AXIS["Northing", NORTH]

While the non-working ones contain these lines, which apparently are wrong or unprocessable by NEST
  AXIS["Easting", "North along 90 deg East"], 
AXIS["Northing", "North along 0 deg"],

If you use the graph builder or command line (gpt) where the parametres are defined in an XML-file, you can manually replace these lines in the graph file (xml file) for the projection definition, then it works! An example for such an XML-file used by NEST is here.

Another example, this one works

 PROJCS["WGS 84 / Australian Antarctic Lambert", 
  GEOGCS["WGS 84", 
    DATUM["World Geodetic System 1984", 
      SPHEROID["WGS 84", 6378137.0, 298.257223563, AUTHORITY["EPSG","7030"]], 
    PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], 
    UNIT["degree", 0.017453292519943295], 
    AXIS["Geodetic longitude", EAST], 
    AXIS["Geodetic latitude", NORTH], 
  PROJECTION["Lambert_Conformal_Conic_2SP", AUTHORITY["EPSG","9802"]], 
  PARAMETER["central_meridian", 70.0], 
  PARAMETER["latitude_of_origin", -50.0], 
  PARAMETER["standard_parallel_1", -68.5], 
  PARAMETER["false_easting", 6000000.0], 
  PARAMETER["false_northing", 6000000.0], 
  PARAMETER["scale_factor", 1.0], 
  PARAMETER["standard_parallel_2", -74.5], 
  UNIT["m", 1.0], 
  AXIS["Easting", EAST], 
  AXIS["Northing", NORTH], 

EPSG3031 works not: 
  PROJCS["WGS 84 / Antarctic Polar Stereographic", 
  GEOGCS["WGS 84", 
    DATUM["World Geodetic System 1984", 
      SPHEROID["WGS 84", 6378137.0, 298.257223563, AUTHORITY["EPSG","7030"]], 
    PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], 
    UNIT["degree", 0.017453292519943295], 
    AXIS["Geodetic longitude", EAST], 
    AXIS["Geodetic latitude", NORTH], 
  PROJECTION["Polar Stereographic (variant B)", AUTHORITY["EPSG","9829"]], 
  PARAMETER["central_meridian", 0.0], 
  PARAMETER["Standard_Parallel_1", -71.0], 
  PARAMETER["false_easting", 0.0], 
  PARAMETER["false_northing", 0.0], 
  UNIT["m", 1.0], 
  AXIS["Easting", "North along 90 deg East"], 
  AXIS["Northing", "North along 0 deg"], 

Geoinformatics TutorialTerrain Correction of SAR Images -- Part 1

A characteristic of side-looking SAR image is the so-called foreshortening and layover, a reflected signal from a mountaintop reaches the sensor earlier or at the same time as the signal at the foot of the mountain. This results in the typical look of mountains that seem to have "fallen over" towards the sensor:

In the original image to the left, a pixel is basically displaced depending on its elevation above sea-level, so it is important to remove this layover as seen in the image above to the right. The freely available NEST SAR Toolbox is in many ways a great tool for satellite image processing and makes it very easy terrain-correct SAR images in a fully automatic process.

The algorithm takes the DEM and using orbit parameters of the satellite creates a simulated SAR image from this DEM. The simulated and the real SAR image, which will look very similiar, are coregistered. Through this simulation, the displacement for each location in the original landscape, the DEM, is known, so if the simulated SAR image is transformed back into the original DEM -- and the coregistered SAR image along with it -- the pixels of the SAR image will receive their real, geographical location. (It's actually quite easy in principle, but not sure this description is clear...)

Below is the original ESA SAR image as loaded into NEST displaying the typical layover: 

Before the terrain correction, I apply the newest orbit file (Utilities>Apply Orbit), calibrate the values (SAR Tools>Radiometric Correction>Calibrate; but not in dB since the terrain correction needs linear values!) and the run a speckle filter, median 3x3 (SAR Tools>Speckle Filtering>Single Image)

Now to the actual terrain correction. Choose Geometry>Terrain Correction>SAR Simulation Terrain Correction. In the first tab 1-Read you choose the product to be corrected: 

The second tab defines the output. Unfortunately the default output filename in this case is only "SarSimTC.dim", I follow the NEST naming convention where all methods applied are contained in the filename, such as "ORIGINALNAME_AppOrb_Calib_Spk_SarSimTC.dim" but this has to be typed manually:

In the "3-SAR simulation" tab, one can choose various DEM such as GETASSE and SRTM, but in my case I choose an "External DEM" and specify the file path. I set the "no data value" to 9999.0, otherwise all ocean surface will be NAN. There is something unusual in this tab -- if you do not highlight any of the source bands, the first one only will be processed, in this case "Amplitude_VV". If other bands also should be processed, both source bands (in this case Amplitude_VV and Amplitude_VH) must be highlighted by choosing and clicking them!

The "4-GCP Selection" tab I leave the given values: 

Finally, the "5-SARSIM-Terrain-Correction" tab. For my purpose, I choose 20m resolution for the output image, the map projection of Svalbard/Spitsbergen WGS1984 / UTM 33N and prefer nearest neighbour interpolation:

Now I can choose "process" and this particular run takes 6.5 minutes on a Windows 7 64-bit computer for one source band. For two source bands it is much, much longer (80 minutes in this run!) and may not work if the computer has too little RAM, so the best and fast way is to process individual source bands separately. (The Range Doppler algorithm for removing layover which I will discuss in a later  is faster but does not work for some scenes at high latitudes(?)).

 I choose "Utilities>Dataset Conversion>Linear to dB" to get desibel values and get this final result. The data fits perfectly to cartographic shapefiles of the coastlines and to the other geolocations.

compared again to the original SAR image the difference is easily visible!

A problem in the current version: If you -- after having processed a particular scene -- choose a different scene under "1-Read" as input having differently named source bands, the source band list under "3-SAR Simulation" does not update -- you have to close the whole window and start all over -- part 2 and following describe how to process a large number of scenes.

The next postings will discuss how to run all this from command line and do batch processing.

Geoinformatics TutorialTerrain Correction of SAR Images -- Part 2

Rather than clicking through each applied method in the menue, a production chain can be implemented with the "Graph Builder". Choose "Graphs>Graph Builder" and by right clicking in the graph space you can add methods and connect them with arrows in the order of running through these.

You can save the whole graph as an xml-file for later use, and this is also needed for batch command line processing. The individual tabs in the Graph Builder are just the same as described in part 1, only be aware that for the SARSIM Terrain Correction three individual parts have to be chosen (below the numbers 6 through 8). The "SARSIM-Terrain-Correction" you can choose is only part of the similarly named SARSIM Terrain Correction in Part 1!

Geoinformatics TutorialTerrain Correction of SAR Images -- Part 3

The most convenient way to process large quantities of SAR data is using the methods through command line. With the "gpt" command as described in the Nest help pages you can process single scenes from command line, but here is a way to process large quantities of scenes from command line. With the DOS "for" command you recursively search through your directories for scenes to be processed and hand these scenes each to the gpt command.

Here is how to do it:

First you create the processing chain with the graph builder as described in part 2 and save it as an XML file. Especially in the beginning, you may want to keep it to simpler processing chains not containing all tasks at once. In our case, let's take only the SARSIM Terrain Correction:

You set the values in Graph Builder and save it, lets say as "SARSIM_TC.xml". You still should check and edit the XML file for the parameters you need (map projection, resolution, etc) and you will have to modify the saved XML file at twoplaces for batch command line use as follows:

Make sure that the filenames in the XML file have $file and $target as placeholders as in the following examples:

 <node id="1-Read">
    <parameters class="com.bc.ceres.binding.dom.Xpp3DomElement">
and the Write part (sourceProduct refid may vary in your case):

<node id="2-Write">
      <sourceProduct refid="6-SARSim-Terrain-Correction"/>
    <parameters class="com.bc.ceres.binding.dom.Xpp3DomElement">
Now you create a SARSIM_TC.bat file containing

for /r C:\Users\max\location_of_files\ %%X in (*.dim) do (gpt   C:\Users\max\location_of_XMLfile\ SARSIM_TC.xml -Pfile="%%X"  -Tfile=" C:\Users\max\location_of_files\%%~nX_SarSimTC.dim")

What happens here?

  1. The for-command goes through the directory containing your files to find files named "*.dim" and passes the file name to "%%X".
  2. For each of these input files "-Pfile="%%X", the NEST command "gpt" applies the Graph Builder production chain saved in "SARSIMTC_dB.xml" 
  3. The output is saved in the parameter -Tfile, which here is written "%%~nX_SarSimTC.dim", taking the filename and between original name and filetype adding "_SarSimTC" to indicate this is having been processed with SarSim. You may choose different naming, but I find this convenient.
You navigate the DOS window (type "cmd" at Windows Start> "search programs and files" to open it) to the directory containing SARSIM_TC.bat, then type "SARSIM_TC.bat" and all scenes in the specified folder will be processed.

The results will be the same as shown in Part 1

Geoinformatics TutorialTerrain Correction of SAR Images -- Part 4

A short comment only on the "Range Doppler Terrain Correction." As described in Part 1, the SARSIM algorithm takes the DEM and using orbit parameters of the satellite creates a simulated SAR image from this DEM. The simulated and the real SAR image, which will look very similiar, are coregistered. Through this simulation, the displacement for each location in the original landscape, the DEM, is known, so if the simulated SAR image is transformed back into the original DEM -- and the coregistered SAR image along with it -- the pixels of the SAR image will receive their real, geographical location.

The Range Doppler Algorithm does not simulate a SAR image to coregister this and the original SAR image, but calculates displacement based on orbit parameters and a DEM. The Range Doppler algorithm is much faster in processing scenes. When comparing scenes with both SARSIM and Range Doppler methods, I find no difference in the final product. However, the Range Doppler method does not work for quite a few of my scenes. If I understood ESA correctly, this is due to not accurate enough data in the SAR metadata, such that calculations of the displacement is incorrect. This appears to be special with data from the Arctic regions

I haven't therefore used this one that much, but in other areas of the world it may be worth using the Range Doppler Terrain Correction.

Choose Geometry>Terrain Correction>Range Doppler Terrain Correction  (in Graph Builder choose "Terrain Correction"). The settings are as follows

LiDAR NewsMobile Mapping Contest Closes August 31

If you'd like a chance to win $10K plus use of the new Pegasus:Two on a mobile mapping project Continue reading →

Click Title to Continue Reading...

Andrew Zolnai BlogThe happenstance art of maps

I showed recently how CLIWOC weather data from ships captains logs dating 1662 to 1885 totalled almost 1/2M points. It started with a 1/4M ships tracks, and combining look-up tables from four maritime agencies they yield numeric wind force and direction...
But wait! Let's leave trad posters in favour of rad palettes, shall we?
Although not evenly scattered, they created a rather arresting visual effect. I coded the Beaufort (wind strength) readings by colour as well as size - ROYGBIV and large => small from low to high Beaufort or wind strength - posting the smaller weaker wind values over the larger stronger ones, not only reduced symbol overlap & hiding, but it also created a pseudo 3D effect. And orienting them to wind direction helped avoid over-posting.

Here it is with a simple continent mask backdrop:

click to enlarge

Here it is against Rumsey's 1812 world map to match the vintage of the data:

click to enlarge

Geolicious liked my white-on-black static map on AWS, so I tried inverting too:

click to enlarge

So who said maps cannot be art? And does this not remind you of starling flight clouds?


GIS CloudWhy Mobile Data Collection Portal?

For everyone who wants to take their field data collection to the next level, here are some interesting facts about Mobile Data Collection Portal.

Creating forms, accessing the form/project in MDC app and making edits within the app from anywhere, anytime on any device

Key values:
  • Free sign in/use your existing username
  • Create and edit as many custom forms and projects as you want
  • Add as many fields as you want like select lists, radio buttons, hidden fields, barcode, latitude, longitude
  • Access the projects and forms with your Mobile Data Collection app
  • Full and real time data display
  • Share your projects with other users (manage your permissions)
  • Create and save reports (with all the data and media collected) to your desktop (hit ctrl+s)

For more ideas on how to utilize MDC and MDC Portal check our Field Data Collection and Inspection Solution

Use cases:

All Points BlogGIS Government Weekly News: GGIM Standards Report, Sarasota Polygons, First Nations Map Their Land

GGIM Standards Report National Mapping Authority Perspective: International Geospatial Standards by Lead Authors Gerardo Esparza, INEGI, Mexico, Steven Ramage, Ordnance Survey International, Great Britain is available as a 26 page PDF download.   Sarasota Capital Projects Map... Continue reading

LiDAR NewsLaser Scanner Provides Quality Control for 3D Printing

Suppose your 3D printer malfunctions in the middle of a project. Continue reading →

Click Title to Continue Reading...