Thursday, May 28, 2009

Anatomy of a field mapping

As promised in the last post, I will spend a moment to show how to import pictures and sync them with the gps log that was taken during the field mapping.

Since the maps we used are not for public view, the backgrounds of the maps in this post will be quite empty. But that isn't so important for what we want to see.

Imagine you made your field mapping, spent the day out in the sun, took gps points, created geonotes and your colleague continuosly took pictures to be able to better understand what is going on once you are back home and have to review the work and do analyses.

So now you are at home and have a bunch of geonotes that might look like the following:



your embedded database view tells you through a quick query that the gps log saved 3695 points:


your colleague tells you that he took 64 pictures:


again your colleague tells you that when you started the field mapping in the morning the gps utctime and the digital camera time had a difference of 2 hours and 1 minute.

This is all you need. Go under File -> import -> Other -> Import Photos



The next tab asks you two things:
  • the pictures folder
  • the time shift between gps and camera (gps time - camera time in seconds) in my case 2 hours and 1 minute = -7260 seconds



Push Finish and it will import the pictures as geonotes in the position in which gps log and picture time match:




And pictures that were found to be out of range of time are not added (in this case 3 pics that were on the camera from another day):



In fact things look a bit more crowded now:



Better use the fieldbook to have a better look:


Isn't that a helping hand for your job? It is for ours at least! :)

Caveats:
  • don't forget to write somewhere the time difference between the gps and the camera. Without that things will not work
  • you have to import the photos from the digital media of the camera directly, without coping it somewhere. This is due to the fact that java can read only the files last modification date and time (as opposed to the creation time, which would be much better in this case). So if you move it, that one will change. So if you have to move it, make sure to zip it to an archive, since that one, once extracted again, preserves the original timestamp.

PS: I will try to make a build for those that would like to try in the next days. I first want to solve the "unable to load map" bug, which I finally know how to solve...

Monday, May 25, 2009

Digital field mapping enhancements

Last week we did a couple of days of digital field mapping with BeeGIS and the students of the University of Urbino.

It has been a quite cool time and good places to see, but it also triggered some bugfixing and enhancements, which is good. Let's have a look at them.

1) the gps tool was not dummy proof

People not used to the tool tend to push every button very often and break things.
So I reviewed the gps tool bar a bit and it looks like that:


That means that no button is enabled until the gps is not logging.

If you push the logging (first from left) button without having connected the gps, it will prompt you for it:


and after properly having set everything you can start to use the tools you like:



2) the layer creation was not gis-dummy proof

When asking people to create a new layer on which to record gps point, line or polygon shapes on, people often got lost by that task. I agree that a person using the tool should know what he is doing and whioch projection he would like to use, but anyway, when you are on the field, things need to go much faster than usual.

That's why I added three new buttons:


Those actions create new layer ready to work with. The user is only asked where (i.e. to which shapefile) to save the layer. The layer is then created with the current's map projection, loaded into the catalog and map on top of the other layers. The created layer contains only two field, both of type string, called name and description. The user is assumed to use these action only at the begin, afterwards the layer creation tool can be used.

3) Give a look at the embedded database

A new view is available in JGrass and BeeGIS.
Go in the window menu:


select the other entry:


and take the database view.

This view connects and performs a login to the embedded database using the database preferences path, user and password:



and gives you a simple yet powerfull tool to browse the embedded database. This browser is usable only when you are using the H2 database, since it is the H2 itself that supplies this great tool.


4) sync your pictures

Whenever the gps is logging, the points are saved in the database with the gps's utctime and position. This information can be used to import a set of pictures taken during the field trip and put them on a map in the proper position wrapped by geonotes.

To do so go under File -> import


and choose import photos.

Tomorrow I will be on a field trip again. I will continue this afterwards, when I have taken tonns of gps points and images, in order to be able to show something real. Stay tuned.


5) unable to load map

We were not yet able to solve that, but finally we have a real error thrown that directed us to the part of code. If you have a map or a crs (seems to happen more often when Italian crs are used) for which the unable to load map always happens, please send it to us, since currently we are not able to reproduce it. But we are very near.