Archives par étiquette : PostgreSQL

pl-pyDOK

https://github.com/mathieubossaert/pl-pyodk

Un nouvel ensemble de fonction pour récupérer automatiquement les données de vos formulaires ODK dans votre base de données #PostgreSQL.

Ce nouvel ensemble de fonctions utilise pyODK (https://github.com/getodk/pyodk) dans des fonctions pl/python et permet l’utilisation de filtres (ex les données envoyées il y a moins de 48h).
Le principe est le même qu’avec Central2PG, une tâche planifiée interroge à la fréquence voulue le serveur ODK Central.

Lors du premier appel les tables qui accueilleront les données sont créées dans la base de destination et sont remplie.
Lors des appels suivants, si de nouvelles questions ont été ajoutées au formulaire, les colonnes correspondantes sont ajoutées aux tables, et les nouvelles données intégrées.

Vous trouverez dans ce dépôt un exemple complet :
– une image docker (de test) d’un serveur PostgreSQL avec les fonctions
– un formulaire ODK vierge
– les instructions pour récupérer les données dans PostgreSQL
– les instructions pour créer une tâche planifiée
– les instructions pour afficher les afficher dans QGIS)

    ODK pour la collecte de données géo dans PostGIS (⅓)

    Premier article d’une série de 3 sur Geotribu, consacrée à l’utilisation d’ODK avec PostGIS

    Premier article d’une série de 3 sur Geotribu, consacrée à l’utilisation d’ODK avec PostGIS.

    Merci à l’équipe pour l’accueil, les conseils, la relecture et les outils mis en place pour la publication.

    https://static.geotribu.fr/articles/2021/2021-06-08_odk_postgis_1/

    Transformation des medias créés dans ODKCollect en fichiers sur le serveur

    Objectif

    Écrire dans le système de fichier du serveur, les fichiers stockés sous forme de binaire dans PotgreSQL. La méthode est générique et fonctionne si de nouveaux formulaires sont créés ou si certains sont supprimés.

    Write to the server’s file system, files stored as binary in PotgreSQL. The method is generic and works if new forms are created or if some are deleted.

    Ressources

    https://github.com/opendatakit/aggregate/issues/164#issuecomment-347390275

    https://stackoverflow.com/questions/38900823/postgres-find-all-rows-in-database-tables-matching-criteria-on-a-given-column

    Principe

    Une table liste les objets binaires stockés dans la base de données ODK (toutes les tables dont le nom se termine par « BLB » et ne commence par par un «  » (tables système d’Aggregate)

    Elle stocke aussi le nom que nous souhaitons donner au fichier (à partir de champs de métadonnées d’Aggregate « _LAST_UPDATE_DATE » et « UNROOTED_FILE_PATH » Et enfin un entier mis à 1 quand le fichier a été généré dans sur le disque

    Pour générer les fichiers nous faisons appel à la fonction lo_export

    Les fichiers sont créés dans un répertoire sur lequel postgres à le droit d’écrire. Ce répertoire est servi sur le web par un serveur de fichier (minio)

    Les téléphones actuels peuvent facilement créer des images de 15 Mo… L’option proposée dans xlsform permettant de réduire la talle des images en définissant un nombre maximum de pixel pour le plus grand côté de l’image sera intéressante : https://docs.opendatakit.org/form-question-types/?highlight=select%20one#scaling-down-images

    A table lists the binary objects stored in the ODK database (all tables whose name ends with « BLB » and does not begin with a «  » (Aggregate system tables) It also stores the name we want to give to the file (from Aggregate’s « _LAST_UPDATE_DATE » and « UNROOTED_FILE_PATH » metadata fields) And finally an integer set to 1 when the file was generated in on the disk

    To generate the files we use the lo_export function

    Files are created in a directory on which postgres have the right to write. This directory is served on the web by a file server (minio)

    Current phones can easily create 15MB images… The option offered in xlsform to reduce image’s size will be interesting : https://docs.opendatakit.org/form-question-types/?highlight=select%20one#scaling-down-images