Friday, September 25, 2020

SMASH 1.5.0 is out - raster enhancements, CRS, exports and measuring tool

Today we released SMASH 1.5.0 for Android and IOS to the markets.

Quite some work has been done in the raster and projection system backbone.

Raster data and CRS

When it comes to geopackage a lot is allowed. Until now SMASH (as geopaparazzi) allowed to view only tile data generated using the google tiling scheme. And moreover data was visible only at zoom levels for which the tiles had been prepared. This is a problem inherited in many workflows from the preparation of mbtiles datasets. Often in these cases zoomlevel beyond the original image's resolution are generated bloating the database to gigabyte size even for small regions.

Gdal is smart and by default generates only one zoomlevel at the optimal image resolution and using the best tile schema. And yes, also the projection might be different from the usual epsg 3857 used in the google tile scheme. 

Supporting this has been important, since it allows to create geopackages of big imagery maintaining more or less the same size. So now we have two ways to load geopackage tile datasets.

In the properties view of geopackage layers you will have more options now:

Apart of the opacity now there are two more options. The first enables the possibility to load a wider range of tiles schemas. Here an example of an ortophoto reprojected with gdal and packaged as geopackage:


This features has a larger memory footprint as it loads the tiles in memory as an image. So if the dataset is too large for your device you might need to go back to loading it with classic tiling scheme.

Since we are at it, what is the second option? It allows to select a color to make transparent. This is very useful when there is the need to overlay technical maps over an elevation model or ortophoto. But it also solves a situation like this:

These are two geopackage layers of a reprojected ortophoto. When both loaded the black collar of one covers the other.  It is possible to set the black collar to transparent:

Which results in:

which looks already better. Actually, when the jpeg geopackage tiles are generated, there is some interpolation and antialiasing going on, which makes part of the color not completely black, hence the remaining pixels. But if we load the original geotiffs and remove the collar from the upper image, the result is nice and clean (and also way faster to load);


This is how it looks like if we remove white from the image below:

So what about reprojecting data?

Yes, we added a nice CRS view in the settings:

from which we also can add new projections by epsg code:

The projection information is downloaded from the internet and the projection is registered:


Available projections are used to reproject vector datasets (geopackage layers and shapefiles) onto the map. This works very nicely.

If a dataset is loaded into the layerview and its projection is not known, SMASH will download and register it:


If the projection is not recognised, the user will be prompted to supply the epsg code for the projection:


While vector datasets are nicely reprojected, with raster it is a different story. At the moment only the raster boundingbox is reprojected to place the image in the right spot, but the result can be also quite bad. So while it looks nice in one corner:

it can be bad in the other:

So this is more a fallback workaround for the case you forgot to prepare a dataset, it is not really a solution yet.

So, handle with care!

GPS, to filter or not to filter

In previous SMASH releases we introduced the Kalman filtered GPS signal. It was available only for gps logs that were recorded. To make things more consistent, the behavior has been extended to all GPS dependent features. So the filtered GPS setting

now has some impact. As a reminder, in case of gps logs original and filtered GPS signal are BOTH always saved into the database and the user can choose to look at the original and/or filtered log. This still applies. 

But now the GPS position layer obeys to the setting. And when you insert a note in the gps position, the one defined in the settings will be used. 

This might sound scary but it actually is not. Just remember to have your settings right.

To aid the user, the "other" position is shown using a tin line and a dot starting from the current used position:

 

For example when driving through a tunnel, the original position on android can be jumpy:
 



New Toolbar

Since we are starting to prepare for geometry editing in geopackages, we started to think about a proper toolbar already. We came up with a small handler in the lower right corner:

which allows to activate the bottom toolbar:

The feature info tool has already been migrated from the right drawer down here.

And a new tool has been added in this release: the measurement tool. For those coming from geopaparazzi, I am sure they were missing it. With this tool you can drag over the map and have a qualitative measurement of the distance:



Other features

SMASH has two new export formats: GPX and KML. These export the whole survey project to a single GPX/KML file:

If instead you need to export one single log to gpx (since that is a great exchange format for SMASH users, being able to overlay it), you can do that sliding a log from the log view:


Last but not least, during logging now some time and distance (normal and filtered... note the difference when driving through several tunnels with a jumpy GPS) related information are shown:


That is all for version 1.5.0. Enjoy!!