QGIS Plugin: Transectizer

Jan. 5, 2014

Transectizer es un plugin QGIS que proporciona una manera sencilla de diseñar transectos lineales con estaciones de muestreo distribuidas a una distancia determinada a lo largo del transecto.

[caption id=“attachment_667” align=“alignleft” width=“300”]Custom cursor showing bearing A custom, chatty QGIS plugin cursor showing the bearing line.[/caption]

Transectizer hace posible generar automáticamente los detalles de cada estación individual (nombre del transecto/campaña, nombre de la estación, número de estación) o tener control sobre todos los atributos de cada estación.

Puede almacenar los transectos en una nueva capa o en una capa existente. En el caso de que la capa no sea compatible con Transectizer hará los cambios apropiados en la capa para hacerla compatible con Transectizer.

Transectizer

[caption id=“attachment_667” align=“alignleft” width=“300”]Custom cursor showing bearing A custom, chatty QGIS plugin cursor showing the bearing line.[/caption]

Transectizer is a QGIS plugin which provides an easy way to design linear transects with sampling stations distributed at a given distance along the transect.

Transectizer makes possible to automatically generate each individual station details (transect name, station name, station number) or have control over all the attributes of each station.

You can store your transects in a new layer or provide an existing layer for it. In that case, Transectizer will make the appropiate changes to your layer to make it compatible with Transectizer.

Copyright/License

Transectizer ha sido desarrollado por Jorge Tornero.

(C) 2013, 2014 Jorge Tornero, http://imasdemase.com

Transectizer se libera bajo los términos de la

 

GNU GENERAL PUBLIC LICENSE Version 3, 29 de junio de 2007

 

 

Este programa es software libre: usted puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Fundación para el Software Libre, ya sea la versión 3 de la Licencia, o (a su elección) cualquier versión posterior.

Este programa se distribuye con la esperanza de que sea útil, pero SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita MERCANTIL o de APTITUD PARA UN PROPÓSITO DETERMINADO. Consulte los detalles de la Licencia Pública General GNU para obtener una información más detallada. Usted debería haber recibido una copia de la Licencia Pública General GNU junto a este programa. En caso contrario, consulte:

 http://www.gnu.org/licenses

 Donaciones/cuotas

No se requiere, por supuesto, de cuota o donación ninguna para que Transectizer funcione… si, no obstante, siente que Transectizer ha mejorado algún aspecto de su vida, puede hacer una pequeña donación a una ONG de su elección para celebrarlo. Hacer una pequeña donación al proyecto QGIS también puede ser una buena idea, teniendo en cuenta que nada de este invento sería posible sin él.

Si, además, se siente realmente con ganas de recompensar mi esfuerzo, Contacte conmigo a través de correo electrónico o twitter y envíeme una postal desde donde viva. Será un honor incorporarla a mi (aún inexistente) colección de postales y enseñárselas, orgulloso, a mi niño de 4 años.

Código fuente

El código fuente de transectizer se encuentra disponible para su descarga en el repositorio github de Transectizer.

Algunas advertencias

Transectizer calcula las posiciones de las estaciones haciendo uso de la fórmula directa de Vincenty y el elipsoide WGS84 para la realización de los cálculos, pasando a la fórmula el mismo punto inicial pero diferentes distancias hasta el destino. Estas distancias son los n-múltiplos de la distancia entre estaciones, siendo _n_el número de estación a ser posicionada. Pero otra aproximación consiste en fijar la distancia que se le pasa a la fórmula pero moviendo el punto desde el que se efectúa el cálculo: El primer punto es el punto de comienzo, el segundo se calcula desde el primero, el tercero desde el segundo y así sucesivamente. Dado que estas dos aproximaciones devuelven resultados diferentes, si cree que o bien el método de cálculo que he escogido para Transectizer no es válido o, que por el contrario, que ambos métodos deben estar disponibles para que el usuario escoja uno u otro en función de sus necesidades, contacte conmigo. Esta?e encantado de modificar Transectizer de la mejor manera posible.

Uso

La operación básica de Transectizer es simple: Escoja una capa vectorial de puntos sobre la que operar, defina la línea del transecto, establezca la distancia entre las estaciones que se posicionarán y su número y ¡¡listo!! Transectizer añadirá cada estación como un nuevo objeto en su capa.

Escogiendo la capa de trabajo

choosing_layer_esEsta parte del diálogo principal de Transectizer es auto-explicativa, pero existen algunos detalles a tener en cuenta:

  1. Al escoger una capa existente, Transectizer comprobará si la capa escogida tiene los atributos que necesita Transectizer para funcionar:

Si la capa escogida no tiene esos atributos, será preguntado si desea crearlas dentro de su capa o cancelar la operación.

2) ¡ATENCIÓN! Al crear una capa nueva, será creada como una capa de memoria, por lo que es obligatorio guardarla a fichero si desea conservar la información.

Definición del transecto

transect_definition_esEsta parte del diálogo hace posible definir la línea a lo largo de la cual se ubicarán las estaciones (¡¡Síiii, eso es el transecto!!)

El transecto se definde facilitando un punto inicial, un rumbo para la línea y una distancia entre estaciones. A estos efectos, Transectizer dispone de dos modos de operación:

*1) Definición automática del transecto: Para establecer este modo de trabajo, debe marcar el checkbox Definición automática. Haga click sobre el mapa para establecer el punto inicial del transecto y, a continuación, arrastre el ratón. El cursor del ratón le informará sobre el rumbo del transecto mmientras define la línea. Suelte el botón del ratón cuando lo considere apropiado y el punto de partida y el rumbo de su transecto se habrán definido.

En cualquier momento del proceso de definición automática, preste atención a la barra de estado de QGIS, que le proporcionará instrucciones para completar el proceso.

Las herramientas de definición automática del transecto sólo están disponibles cuando la pestaña de definición del transecto está activa.

2) Definición manual del transecto (por defecto): Teclee o ajuste los spinbox de X/Lon e Y/Lat para definir las coordenadas de su punto inicial. Debe proporcionar las coordenadas de los puntos en el mismo SRC que su proyecto. Teclee o ajuste el rumbo del transecto en el spinbox de rumbo y ya estará listo para continuar el proceso.

Si existiera una conexión GPS disponible, puede establecer su posición actual como punto de partida para el transecto, simplemente presionando el botón Obtener desde GPS

Después de definir la línea del transecto, debe proporcionar la distancia entre estaciones, seleccionado sus unidades del combobox de unidades de medida y el número de estaciones a ser posicionadas. Por el momento, las unidades de medida disponibles son metros, kilómetros, pies, yardas, millas y millas naúticas. Si desea usar otro múltiplo o submúltiplo de estas unidades, ajuste el valor apropiado en la distancia entre estaciones. Por ejemplo, si desea posicionar estaciones/puntos de muestreo cada centimetro, ajuste la distancia entre estaciones a 0.01 y seleccione la unidad metros.

Detalles de estación

station_details_esCada una de las estaciones posicionadas puede tener cierta información asociada. Una capa capaz de trabajar con Transectizer ha de tener, al menos, los atributos/campos descritos en la sección Escogiendo la capa de más arriba. Transectizer tiene dos modos de funcionamiento que proporcionan al usuario cierto control y capacidad de personalización sobre la información almacenada con las estaciones. Puede escoger el modo de operación marcando/desmarcando el checkbox Detalles automáticos en la pestaña 3. Inf. estación &GO!! del diálogo de Transectizer.

1) Detalles automáticos (por defecto): Mediante este modo de operación usted podrá proporciona un nombre de campaña/transecto, un prefijo para estación fijos y un número inicial de estación que se incrementará secuencialmente para todas las estaciones. En este caso, no está permitida la adición de comentarios/observaciones.

2) Detalles manuales: Al crear el transecto, se le ofrecerá un diálogo como el siguiente:

manual_naming_esEn este caso, se tiene total control sobre los campos/atributos de cada estación. Puede proporcionar un nombre de campaña/transecto personalizado, así como el prefijo de la estación, su número y observaciones para cada una de las estaciones posicionadas. Puede fijar a voluntad estas variables marcando el checkbox _Fijar_junto a cada uno de los parámetros e incluso hacer el número de estación secuencial marcando el checkbox Auto junto al campo de número de estación. Por ejemplo, si desea mantener el mismo nombre de campaña/transecto para cada una de las estaciones, marque el checkbox correspondiente y se mantendrá fijo durante todas las estaciones. Esto puede ser útil en el caso de desear dar un prefijo diferente en las estaciones pares o en las impares, para indicar actividades de muestreo diferentes dentro de un mismo transecto, por ejemplo.

¡¡Tenga en cuenta que este diálogo aparecerá para cada una y todas las estaciones a posicionar, lo que puede ser muy tedioso en el caso de diseñar transectos con un número de estaciones elevado!!!!

Creando el transecto

Después de haber completado todos los pasos anteriores, presione el botón Crear nuevo transecto para crear el transecto en la capa escogida anteriormente. Puede crear tantos transectos como desee en la misma capa.

Copyright/License

Transectizer has been developed by Jorge Tornero.

(C) 2013, 2014 Jorge Tornero, http://imasdemase.com

Transectizer is released under the terms of the

GNU GENERAL PUBLIC LICENSE

Version 3, 29 June 2007

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see:

http://www.gnu.org/licenses

Donations/Fees

Of course, no donations or fees are required for Transectizer to work… but if you feel that Transectizer has improved you life in any way, you can make a small donation to a NGO/Charity of your choice. Donate to QGIS project is a nice idea, too, providing that nothing of this is possible without QGIS.

Additionally, if you really feel in the mood of rewarding me, just send me a postcard from where you live. I’ll be proud of showing it to my kid. Feel free of contact me through jtorlistas//at//gmail.com

Source Code

The source code of Transectizer is available for download in Transectizer’s GitHub repository.

Things to be aware of

Transectizer positions the stations using Vincenty’s direct formula, using the WGS84 ellipsoid to perform the calculations. They are made feeding Vincenty’s formula with the same inital point but different destination distances. These distances are the n-multiples of the the distance between stations, being n the number of the station to be deployed. But another approach could be to fix the distance but move the point for calculation: First point should be the start point, second point is calculated from first, third from the second, and so on. Providing that these two approaches render different results, if you feel that either the calculation proceeding I’ve chosen is wrong or you think that the two methods should be available for the user to choose, please contact me. I’ll be glad to modify Transectizer in the best possible way.

Usage

The basic operation of Transectizer is pretty simple: You choose a point layer to operate, define your transect line, set the distance between the stations to be deployed and the number of them and that’s all… Transectizer will add each station as a new feature into your layer.

Transectizer dialog is organized into three separate tabs: One for choosing the layer where Transectizer will do its work, another for the definition of the transenct and a last one for providing station details.

Choosing the layer

choosing_layerThis part of Transectizer’s main dialog if self-explicative, but there are some caveats to be aware of:

  1. When choosing a existing layer, Transectizer will check if the chosen layer has the attributes that Transectizer needs to work:

If your chosen layer doesn’t have those attributes, you will be asked for creating them inside your layer or cancel the operation.

2) When creating a new layer, it will be created as a memory layer, so it is mandatory to save to a file if you want to keep your information.

Defining the transect

This tab of the dialog makes possible to define the line along which the stations are going to be deployed (Yessss, that’s the transect!!!)

transect_definitionYou will define your transect providing an initial point for it, a bearing for the line and a distance between the stations, plus a distance unit. For this to be accomplished, Transectizer provides two modes of operation:

1) Automatic transect definition: You must check the Automatic definition checkbox to enter this mode. Click the canvas to set the initial point of yor transect and drag the mouse. Pay attention to the mouse pointer, which provides the current bearing of your transect line. Release the mouse button when appropiate and the start point and bearing of the transect will be defined.

In any moment of the automatic transect definition, pay attention to QGIS status bar on top of the canvas, which will give you hints about the proccess.

The automatic transect definition tools are only available when the transect definition tab is active.

2) Manual transect definition (default): Type/check in the X/Lon Y/Lat spinboxes the coordinates of your initial point. You must provide the coordinates in the same CRS than your project. Set/type the bearing of the transect in the bearing spinbox and you are done.

If you have a GPS connection available, you can set your current coordinates as initial point for your transect, just pressing the button ‘Get from GPS’.

After defining the transect line, you have to provide the distance between stations, choose its units in the units combobox and the number of stations to be deployed. Available units so far are, for convenience, meters, kilometers, feet, yards, miles and nautical miles. If you want to use another multiple/submultiple, set the appropiate value in the distance betweeb stations spinbox. For instance, if you want to deploy stations/sampling points every centimeter, you can just type/set 0.01 and choose meters.

Station details

station_detailsEach of the stations deployed may have some information associated. A transectizer enabled layer has as least several attributes, as depicted in _Choosing the layer_section above. Transectizer has two operation modes that give the user some control and customization over the information stored with the stations. You can choose the operation mode by checking/unchecking the checkbox Automatic details in the Station details & go!!! tab in Transectizer dialog.

1) Automatic details (default): With this operation mode, you will be able provide a fixed survey/station name, an station prefix and an initial station number for all the stations. No observations/remarks are allowed in this case, and the station number will be increased sequentially. However, you can choose where to begin the sequence by setting its initial value in the initial station number spinbox.

2) Manual details: When creating the transect, you will be offered with a dialog like this:

manual_namingHere, you gain total control over station attributes. You can provide a custom transect/survey name, station prefix, station number and observation for each of the deployed stations. You can fix those variables as you wish and even make the station number sequential. For instance, if you want to keep the same transect/survey name for all the deployed stations but change every station prefix, you can check the Fix checkbox besides the Transect name line edit and it will be kept for the subsequent stations. This can be useful, i.e. if you want to deploy a single transect but you want to do different things in odd stations and even stations.

With manual details, also, you can provide observations/remarks for each station if you want to.

Please bear in mind that this dialog will pop-up for all and every of the stations that you deploy, so if you design a transect with relatively high number of stations, it can be very tedious!!!

Creating the transect

After all steps above are done, you must press over Create new transect button to create a new transect into the layer that you have selected before. You can create as many transects as you wish in the same layer.