Suite

Problème « impossible d'ouvrir la source de données » avec ogr2ogr pour reprojeter le fichier de formes


Je ne sais pas pourquoi j'obtiens l'erreur suivante :

ÉCHEC : impossible d'ouvrir la source de données « Sydney2.shp » avec les pilotes suivants.

J'ai déjà vérifié avec succès la forme avec ogrinfo.

J'utilise la commande suivante :

ogr2ogr -f "ESRI Shapefile" Sydney.shp Sydney2.shp -s_srs EPSG:32656 -t_srs EPSG:4326

Des idées?


Il semble que vous vous attendiez à convertir les données de Sydney.shp en Sydney2.shp avec un SRS différent. Cependant, ce n'est pas ce que vous faites.

Utilisation : ogr2ogr [--help-general] [-skipfailures] [-append] [-update] [-select field_list] [-where restrict_where] [-progress] [-sql ] [-dialect dialecte] [-preserve_fid] [-fid FID] [-spat xmin ymin xmax ymax] [-a_srs srs_def] [-t_srs srs_def] [-s_srs srs_def] [-f format_name] [-overwrite] [[- dsco NAME=VALUE]… ] dst_datasource_name src_datasource_name [-lco NAME=VALUE] [-nln name] [-nlt type] [-dim 2|3] [couche [couche… ]]

Notez que la destination vient en premier, vous lui demandez donc de copier de Sydney2.shp vers Sydney.shp. Vous vouliez probablement :

ogr2ogr -f "ESRI Shapefile" Sydney2.shp Sydney.shp -s_srs EPSG:32656 -t_srs EPSG:4326

En fait, dans la plupart des cas, vous pouvez utiliser l'image SVG telle quelle, pas besoin de la convertir en topojson ou GeoJSON mais il y a quelques problèmes à considérer :

La taille du fichier SVG d'origine est-elle trop grande pour votre application ? Si c'est le cas, vous pouvez optimiser le fichier SVG (par exemple, avec : http://petercollingridge.appspot.com/svg-editor). Si cela ne suffit pas, vous pouvez obtenir un fichier de formes à partir d'une autre source (par exemple : http://www.naturalearthdata.com/downloads/) et le convertir en GeoJSON (utilisez ogr2ogr, soit via leur interface Web à l'adresse http://ogre .adc4gis.com/ ou vous le téléchargez avec GDAL sur http://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries). Si le fichier résultant est encore trop volumineux, vous pouvez le compresser avec mapshaper (http://www.mapshaper.org/ - il prend à la fois les formats shapefile et GeoJSON !) et si nécessaire (si la taille de votre fichier est toujours un problème) convertir le résultat carte de GeoJSON à topojson (voir : http://github.com/mbostock/topojson/wiki).

Avez-vous besoin d'utiliser des données de localisation dans votre carte ? (par exemple, vous devrez peut-être marquer l'emplacement d'une certaine ville sur votre carte mais la ville n'est pas dessinée sur votre SVG d'origine) Il est alors plus facile d'obtenir un fichier de formes et de le convertir en GeoJSON (en utilisant ogr2ogr) car vous ne pas avoir d'informations de géolocalisation sur le fichier SVG téléchargé.

Si vous créez un choroplèthe et que vous n'avez aucune exigence de géolocalisation, vous pouvez simplement ajouter le SVG directement à votre page et utiliser D3 pour mapper les données sur votre image ! Une fois que vous avez le SVG dans votre page, vous pouvez même modifier manuellement toutes les données de chemin pour inclure des classes et des identifiants qui faciliteront votre travail D3.


Problème 'impossible d'ouvrir la source de données avec ogr2ogr pour reprojeter le fichier de formes - Systèmes d'information géographique

Un serveur qui connecte toutes sortes de sources de géodonnées vectorielles à une base de données PostgreSQL/PostGIS et fournit un moyen structuré de synchroniser des données externes avec des tables de base de données.

Une situation courante lors du traitement des données géographiques est l'exportation et l'importation répétées de ces données vers et depuis une base de données compatible PostGIS. Alors que l'export est très bien couvert par des produits comme Mapserver et GeoServer, l'import est un peu plus délicat. Les solutions courantes consistent principalement en des scripts personnalisés enveloppant des commandes telles que shp2pgsql ou ogr2ogr. Ces solutions échouent souvent ou nécessitent au moins quelques hacks délicats si des lignes de données uniques doivent être mises à jour au lieu de supprimer et de restaurer le contenu complet du tableau. Il est également difficile de tenir compte des transactions lentes ou interrompues tout en s'assurant que les données restent synchronisées dans leur ensemble. L'utilisation de ces scripts d'importation nécessite soit un accès en ligne de commande, soit un code personnalisé pour les connecter à une file d'attente de travaux ou même à une interface Web pour les rendre utilisables à partir d'autres applications.

Des défauts comme ceux-ci ont été la raison pour laquelle nous avons créé le batyr comme solution réutilisable pour des demandes similaires à l'avenir.

batyr est une application à serveur unique fournissant les éléments suivants :

  • Ecriture "intelligente" des données. Une synchronisation ne consiste plus en une troncature complète et une restauration d'une table. Seules les fonctionnalités qui diffèrent de celles fournies par la source de données externe sont réellement mises à jour. Les nouvelles fonctionnalités ne sont créées que si elles ne sont pas déjà dans la base de données et les fonctionnalités sont (éventuellement) supprimées de la base de données si elles ne font plus partie de la source de données. Tout cela utilise la clé primaire de la table pour identifier les entités correspondantes à partir de la source de données.
  • Une interface Web intégrée pour obtenir une vue d'ensemble de l'état actuel du serveur et éventuellement démarrer manuellement les synchronisations.
  • Une API HTTP bien documentée pour intégrer facilement le batyr dans d'autres applications et permettre un déclenchement flexible des synchronisations. De plus, l'API HTTP fournit des méthodes pour intégrer batyr dans des systèmes de surveillance existants comme Nagios.
  • Transformation à la volée des géométries vers le système de référence spatiale de la table de la base de données. Le système de référence requis est recherché dans la vue/table Geometry_columns de PostGIS et la transformation elle-même est effectuée par PostGIS.
  • En interne, batyr utilise la bibliothèque OGR pour accéder aux sources de données. Batyr couvre donc tous les formats vectoriels supportés par OGR et la connexion à - par exemple - un WFS est possible. De plus, cela permet d'utiliser les formats virtuels OGR pour des options de configuration étendues.
  • Les tâches de synchronisation sont mises en file d'attente en interne et gérées en parallèle à l'aide d'un nombre configurable de connexions à la base de données. Cela prend en charge une API HTTP réactive ainsi qu'une utilisation optimale des ressources.

Avec ces fonctionnalités, il est possible d'intégrer rapidement des géodonnées externes dans votre base de données PostGIS - sans avoir à passer du temps à créer du code personnalisé.


Lecture CSV contenant des informations spatiales¶

Géométries des points de construction¶

Considérez le fichier CSV suivant (test.csv) :

A partir de GDAL 2.1, il est possible de spécifier directement les noms potentiels des colonnes pouvant contenir X/longitude et Y/latitude avec l'option ouverte X_POSSIBLE_NAMES et Y_POSSIBLE_NAMES.

ogrinfo -ro -al test.csv -oo X_POSSIBLE_NAMES=Lon* -oo Y_POSSIBLE_NAMES=Lat* -oo KEEP_GEOM_COLUMNS=NO reviendra :

Si le fichier CSV n'a pas de ligne d'en-tête, les noms factices "field_n" peuvent être utilisés comme noms possibles pour les champs de coordonnées. Par exemple, les données de point XYZ simples peuvent être ouvertes comme

ogrinfo -ro -al altitude.xyz -oo X_POSSIBLE_NAMES=champ_1 -oo Y_POSSIBLE_NAMES=champ_2 -oo Z_POSSIBLE_NAMES=champ_3

Sinon, si une ou plusieurs colonnes contiennent une définition de géométrie codée en WKT, WKB (encodé en hexadécimal) ou GeoJSON (auquel cas le contenu GeoJSON doit être formaté pour suivre les règles CSV, c'est-à-dire qu'il doit être entouré de guillemets doubles , et les guillemets doubles à l'intérieur de la chaîne doivent être répétés pour un échappement correct), le nom de ces colonnes l'option d'ouverture GEOM_POSSIBLE_NAMES.

Pour les versions plus anciennes, il est possible d'extraire des informations spatiales (points) d'un fichier CSV contenant des colonnes pour les coordonnées X et Y, grâce à l'utilisation du pilote VRT.


Conseils de performances¶

Lors de l'écriture dans un SGBD transactionnel (SQLite/PostgreSQL, MySQL, etc…), il peut être avantageux d'augmenter le nombre d'instructions INSERT exécutées entre les instructions BEGIN TRANSACTION et COMMIT TRANSACTION. Ce nombre est spécifié avec l'option -gt. Par exemple, pour SQLite, la définition explicite de -gt 65536 garantit des performances optimales lors du remplissage d'une table contenant plusieurs centaines de milliers ou millions de lignes. Cependant, notez que -skipfailures remplace -gt et définit la taille des transactions sur 1.

Pour PostgreSQL, l'option de configuration PG_USE_COPY peut être définie sur YES pour une amélioration significative des performances d'insertion. Voir la page de documentation du pilote PG.

Plus généralement, consultez la page de documentation des pilotes d'entrée et de sortie pour obtenir des conseils de performances.


Le mode natif de SSRS 2016 ne parvient pas à se connecter à la source de données de la liste SharePoint

Nous utilisons SP2016 avec la norme SQL 2016 (13.0.5026.0 SQL Server 2016 Service Pack 2 (SP2)). La fonction SSRS est activée dans le serveur SQL et le service a démarré. Je peux parcourir le portail SSRS avec http://sqlserver/reports. Également dans mon générateur de rapports SQL 2016, je peux me connecter au serveur de rapports http://sqlserver/ReportServer/

Ensuite, j'ai configuré ma première source de données dans un rapport. Le type de connexion est Liste Microsoft SharePoint. Dans le champ de chaîne de connexion, je tape "https://sharepoint.com/sites/dev". Cette URL peut être parcourue correctement depuis mon PC ainsi que dans le serveur SQL.

Dans Identifiants J'ai essayé toutes les combinaisons auxquelles je peux penser. J'ai essayé mon compte personnel (qui est l'administrateur de la collection de sites) et l'administrateur SQL et l'administrateur de la ferme, etc. Tous les résultats génèrent un message d'erreur

System.Web.Services.Protocols.SoapException : une erreur s'est produite lors de l'accès à la liste SharePoint spécifiée. La chaîne de connexion n'est peut-être pas valide. Vérifiez que la chaîne de connexion est correcte. ---> Microsoft.ReportingServices.DataExtensions.SharePointList.SPDPException : une erreur s'est produite lors de l'accès à la liste SharePoint spécifiée. La chaîne de connexion n'est peut-être pas valide. Vérifiez que la chaîne de connexion est correcte. ---> System.Net.WebException : la connexion sous-jacente a été fermée : une erreur inattendue s'est produite lors d'un envoi. ---> System.IO.IOException : Impossible de lire les données de la connexion de transport : une connexion existante a été fermée de force par l'hôte distant. ---> System.Net.Sockets.SocketException : une connexion existante a été fermée de force par l'hôte distant sur Microsoft.ReportingServices.Library.ReportingService2010Impl.TestConnectForDataSourceDefinition (DataSourceDefinition DataSourceDefinition, String UserName, String Password, String& ConnectError) chez Microsoft.ReportingServices. WebServer.ReportingService2010.TestConnectForDataSourceDefinition (DataSourceDefinition DataSourceDefinition, String UserName, String Password, String& ConnectError)

J'ai essayé de télécharger le rapport sur le portail Web SSRS (http://sqlserver/reports) et j'ai également échoué dans la même erreur.

Puis-je savoir quel pourrait être le problème? Existe-t-il un patch spécifique à ce problème ?


Le deuxième jour de XYMas….GDAL

Donc, revenons aux collégiens et au “OMG, je dois apprendre le python”. En fait, cela aide si vous apprenez le python. Cela aidera votre carrière et c'est toujours agréable de savoir comment programmer quelque chose.

MAIS

Je soumettrai le deuxième jour de XYMas que vous devriez apprendre GDAL avant de plonger dans python si vos intérêts sont centrés sur l'emplacement. GDAL est à la base de nombreux logiciels SIG (ArcGIS et QGIS pour en citer 2). Il est basé sur la ligne de commande (voir le post précédent) et il est tout puissant car vous pouvez manipuler des données vectorielles et des données raster et il existe une tonne de ressources pour l'utiliser avec python sur Internet. Aucune licence requise. Tout ce dont vous avez besoin, c'est d'un cœur fort et de doigts agiles. N'oubliez pas que les outils GDAL fonctionnent sur des trames et les outils OGR fonctionnent sur des vecteurs. C'est la leçon 1.

Comme mon petit exemple de travail ou pourquoi cette connaissance vous servira bien :

  1. Permet de télécharger les tremblements de terre significatifs de l'USGS sous forme de fichier csv : https://earthquake.usgs.gov/earthquakes/feed/v1.0/csv.php
  2. Je vais utiliser ogr2ogr pour le déplacer dans autre chose que csv : ogr2ogr -f GPKG equakes.gpkg important_month.csv -oo X_POSSIBLE_NAMES=longitude -oo Y_POSSIBLE_NAMES=latitude -a_srs ‘EPSG:4326’
  3. Je vais maintenant interroger tous les tremblements de terre > qu'un 5.0 de GDAL : ogrinfo equakes.gpkg -dialect sqlite -sql “select mag from significatif_month où mag > 5.0 trier par mag desc”

Pour le plaisir, je vais le déposer dans QGIS juste pour tout voir (c'était l'éruption volcanique d'avant la Nouvelle-Zélande):

Il y a quelques choses que je pourrais faire pour améliorer cela, comme m'assurer que la magnitude est un champ numérique et non une chaîne, mais pour l'exemple, cela fonctionne.

L'année dernière, un client m'a soudainement surpris avec un “Hey – nous devons fournir des données à l'État et elles doivent être dans un format acceptable par ESRI”. Ce qui n'est pas grave, sauf que j'ai passé beaucoup de temps à les déplacer vers Postgis pour m'éloigner d'ESRI. Il y a un an, nous avons mis en place un script et il tourne depuis environ 15 mois. Nous avons mis à niveau le logiciel et nous avons changé de serveur. Avec quelques modifications, il fonctionne toujours.

ogr2ogr -f GPKG TCStransport.gpkg -nlt point PG:”host=host user=user dbname=dbname password=pass” -nln “addresspoints” -sql “select id, oirid, geom, r_segid, a_segid, seg_side, gislink, cast(structype as SMALLINT), strucdesc, stnum_h, stnum_l, stnum, stnumsuf, building, floor, unit_type, unit_num, secuntnum, predir, pretype, name, type, sufdir, postmod, address, addr_esn, label, subname , vanity, zip, zip4, esn, city, county, state, cast (source as SMALLINT), lon, lat, x_sp, y_sp, z_val, gpsdate, addrauth, editor, geomod, geosrce, geodate, attmod, attsrce, attdate, cast(statut comme SMALLINT), delnotes, right_left, comment, readdress, old_address, color, point_type, street, cad_name, loc_note, cad_post from addresspoints”

Pensez à cela – un petit programme que j'ai écrit (2ème pire programmeur de l'univers connu) qui a maintenant exécuté 1 mise à niveau de serveur et 3 mises à niveau logicielles sans interruption. Tous les soirs depuis plus d'un an. J'aurais dû définir une sorte de plan de paiement de 3,50 $ par jour en fonction du succès.

….et je n'ai même pas discuté du travail que vous pouvez faire avec les données raster. En fait, parlons de la partie GDAL. J'ai décompressé une image SID et j'en avais besoin pour un client –, j'ai donc exécuté ceci pour la compresser à nouveau à une taille normale :

gdal_translate -co TILED=OUI -co COMPRESS=JPEG -co PHOTOMETRIC=YCBCR -tr 1 1 -mask 3 ortho_1-1_hc_s_tn065_2018_1.tif NAIP_2018.tif

Aurais-je pu ajouter plus de “choses” pour le rendre meilleur/plus petit ? Probablement – mais cela a fonctionné. Je peux donc prendre n'importe quel type de fichier image et décompresser, compresser, changer le format, reprojeter, etc. à partir de GDAL. Il fonctionne avec tout, y compris ArcMap/Pro/Whatever it’s appelé.

AUCUNE LICENCE REQUISE. IL FONCTIONNE AVEC PYTHON POUR VOUS CEUX QUI VEULENT AIMER PYTHON.

Pour ce deuxième jour de XYMAS je vous indique :

  • Un excellent tutoriel de Sara Safavi : http://www.sarasafavi.com/intro-to-ogr-part-i-exploring-data.html
  • La documentation GDAL : https://gdal.org/
  • Le livre de recettes Python : https://pcjericks.github.io/py-gdalogr-cookbook/

Je vous demande donc d'apprendre GDAL, puis de passer à python. C'est un excellent logiciel. C'est une communauté active. Vous ne perdrez pas votre temps à apprendre cette compétence – si vous allez rester dans le monde GEO, vous allez y toucher à un moment donné (ou vous devriez – si vous ne le faites pas J'ai des questions sur pourquoi ).


Si vous avez installé chrome-remote-desktop en tant qu'extension du navigateur Chrome, il y a de fortes chances que ce soit la cause du problème.

J'ai trouvé cette réponse (je ne sais pas où), mais cela a fonctionné immédiatement.
Depuis la ligne de commande

Je ne sais pas pourquoi Chrome RD prend l'initiative de contrôler ou de réguler mon système d'exploitation, alors c'est parti !

Très probablement, votre lecteur est formaté avec ntfs, le système de fichiers de MS Windows. Généralement, les problèmes d'accès à ces partitions sont dus au fait que le volume ntfs n'est pas "propre", c'est-à-dire qu'il n'a pas été correctement déconnecté.

Pour vous assurer que le disque est propre :

  • Connectez-le à MS Windows.
  • Faites vérifier le lecteur à l'aide des outils de vérification du système de fichiers de MS Windows (consultez le manuel de votre système d'exploitation pour cela).
  • À présent complètement fermé Windows, c'est-à-dire pas d'hibernation. Vous pouvez également déconnecter correctement le lecteur à l'aide de l'icône dans la zone de notification.

Dans Ubuntu, attendez d'être connecté avant connecter le lecteur. Cela garantira que le lecteur est monté avec des autorisations pour l'utilisateur actuel.

Vous pourrez désormais accéder au volume sans problème.

Toujours dans Ubuntu, vous devez soigneusement déconnecter le lecteur après utilisation. Utilisez l'option de clic droit dans Fichiers (nautilus) pour éjecter le lecteur, ou arrêtez complètement Ubuntu avant de déconnecter le lecteur.


Kemiringan Tanah

topografi/kemiringan tanah paling idéal banyak 15% (lima belas persen).

Pasal 6(c)

Non, ada yang menarik dari kemiringan tanah ini, karena pada QGIS, algoritma yang digunakan untuk kemiringan tanah adalah pente. Anda dapat mengakses algoritma ini dari QGIS Processing Toolbox > Analyse de terrain raster > Pente, kemudian diterapkan pada données DEM. Alhamdulillah, données DEMNAS sudah dapat diperoleh dari BIG.

Non, untuk mendapatkan pente / kemiringan < 15 persen, kita harus menggunakan SAGA.


Le SDK est connu pour être incapable d'ouvrir des couches avec des systèmes de référence spatiale particuliers. Cela peut être le cas si les messages « FGDB : Erreur lors de l'ouverture de XXXXXXX. L'ignorer (arguments de fonction non valides.) » lors de l'exécution de ogrinfo --debug sur le fichier.gdb (signalé comme avertissement dans GDAL 2.0). L'utilisation du pilote OpenFileGDB résoudra généralement ce problème.

L'accrochage des coordonnées FGDB entraînera la modification des géométries pendant l'écriture. Utilisez les options de création de couche d'origine et d'échelle pour contrôler le comportement d'accrochage.

Le pilote ne peut pas lire les données au format SDC (Smart Data Compression) car l'opération n'est pas prise en charge par le SDK ESRI.

La lecture de données compressées au format CDF (Compressed Data Format) nécessite ESRI SDK 1.4 ou version ultérieure.