| 173 | === Final Report === |
| 174 | |
| 175 | **Project Title:** |
| 176 | |
| 177 | SOS tools in GRASS GIS |
| 178 | |
| 179 | **Organization:** |
| 180 | |
| 181 | Google Summer of Code 2017 |
| 182 | |
| 183 | Open Source Geospatial Foundation (OSGeo) |
| 184 | |
| 185 | GRASS GIS |
| 186 | |
| 187 | **Abstract:** |
| 188 | |
| 189 | Intended modules would enable the user to create a vector, a raster based on |
| 190 | some aggregations and create a space time vector or raster dataset, everything |
| 191 | directly from user's access to the SOS server. t.vect.to.rast would also allow |
| 192 | the user to convert a space time vector dataset into a raster dataset. The user |
| 193 | should be also allowed to get the capabilities to get info about sensors from |
| 194 | these modules and filter the results. |
| 195 | |
| 196 | **Pre-GSoC:** |
| 197 | GRASS GIS didn't have any module to work with Sensor Observation Service (SOS). |
| 198 | When the user wanted to use data from his SOS server, he had to access them |
| 199 | through OWSLib, convert them into GRASS GIS or OGR supported format ad then |
| 200 | import it somehow to GRASS GIS as one huge file. |
| 201 | |
| 202 | **Added value:** |
| 203 | v.in.sos imports data from SOS server as a vector map to GRASS GIS. It creates |
| 204 | one layer for each offering and observed property. |
| 205 | |
| 206 | r.in.sos imports data from SOS server as a raster maps to GRASS GIS. It creates |
| 207 | new raster map for each timestamp. |
| 208 | |
| 209 | t.vect.in.sos imports data from SOS server to GRASS GIS as a spatio-temporal |
| 210 | vector dataset. It creates new stvds for each offering and observed property |
| 211 | (created from one vector map as an intermediate). |
| 212 | |
| 213 | t.rast.in.sos imports data from SOS server to GRASS GIS as a spatio-temporal |
| 214 | raster dataset. It creates new strds for each property and each procedure |
| 215 | (registered from raster maps created as intermediates). |
| 216 | |
| 217 | t.vect.to.rast doesn't import data from SOS server to GRASS GIS. It converts |
| 218 | a space time vector dataset into a space time raster dataset. |
| 219 | |
| 220 | User is allowed to use some aggregations and granularity to filter data in all |
| 221 | modules. |
| 222 | |
| 223 | **Continued Work:** |
| 224 | There are some issues or possible enhancements in the modules. |
| 225 | |
| 226 | v.in.sos uses timestamps as column names for each layer. The problem is that it |
| 227 | is not possible to have more than 3000 columns in SQLite table (GRASS GIS |
| 228 | attribute table) without SQLite recompilation. It is little bit solved by |
| 229 | granularity and this module isn't so necessary when there is t.vect.in.sos, but |
| 230 | it is still useful for some purposes and this is really lack. |
| 231 | |
| 232 | t.vect.to.rast is working, but if you take a look at t.rast.to.vect, you can |
| 233 | see much more options. It would be great to involve them also into |
| 234 | this module. |
| 235 | |
| 236 | It would be also great to have a flag for ignoring empty procedures in all |
| 237 | the SOS modules. |
| 238 | |
| 239 | **Link:** |
| 240 | |
| 241 | The modules github repository: |
| 242 | [https://github.com/pesekon2/GRASS-GIS-SOS-tools |
| 243 | |
| 244 | (they should be moved into the official GRASS GIS add-ons repository in |
| 245 | the future) |
| 246 | |
| 247 | One image to show how can visualized sensors look on the OSM map: |
| 248 | https://raw.githubusercontent.com/pesekon2/GRASS-GIS-SOS-tools/d566c868a50f12ba6fc4e1d6b953e9708e4b0061/image_vector_import.png |
| 249 | |
| 250 | **What do you need to test these !AddOns?** |
| 251 | |
| 252 | To use this module, you need your OWSLib up-to-date. If you don't have it, |
| 253 | please install it from its |
| 254 | [https://github.com/geopython/OWSLib github repository]. |
| 255 | |
| 256 | Because of granularity options, you need to be using GRASS > 7.2 to have access |
| 257 | to some functions. |