Suite

Existe-t-il un moyen de configurer QGIS pour empêcher l'appel st_extent lors de l'ajout d'une table PostGIS ?


J'essaie d'ajouter une table extrêmement grande avec un champ de géométrie de points à QGIS et QGIS semble se bloquer. Après quelques recherches dans la base de données postgresql, je l'ai retrouvé dans unst_extentsur tout dans la table.

Est-il correct de supposer que la raison pour laquelle QGIS le fait est afin d'obtenir une étendue complète pour la couche? Et si oui, y a-t-il un moyen de contourner cela? Peut-être utiliser l'étendue de référence spatiale ou fournir manuellement l'étendue ?

QGIS 2.6 64 bits
POSTGIS="2.1.3 r12547" GEOS="3.4.2-CAPI-1.8.2 r3924" PROJ="Rel. 4.8.0, 6 mars 2012" GDAL="GDAL 1.10.0, publié 2013/04/24" LIBXML="2.7.8" LIBJSON="INCONNU" RASTER DE TOPOLOGIE
PostgreSQL 9.3.5, compilé par Visual C++ build 1600, 64 bits


Jetez un œil aux paramètres de connexion PostGIS. Il y a une sélection "Utiliser les métadonnées estimées" qui n'est pas sélectionnée par défaut. Vérifiez-le et QGIS utilisera ST_Estimated_Extent http://postgis.net/docs/manual-2.0/ST_Estimated_Extent.html. N'oubliez pas d'exécuter VACUUM ANALYZE avant.


L'option "utiliser les métadonnées estimées" sur la connexion fonctionne pour les couches nouvellement créées, mais elle ne la modifie pas sur les couches existantes qui se connectent à cette base de données, et je n'ai trouvé aucun moyen de la modifier dans les propriétés de la couche (j'utilise 3.8.3). J'ai trouvé relativement rapide de changer tous mes calques existants en éditant le fichier QGS à ajouterestimatemetadata=trueà toutes les descriptions de sources de données PostGIS.

Voici les étapes que j'ai suivies en utilisant le terminal Linux. Des étapes similaires peuvent être effectuées dans n'importe quel système d'exploitation, tant que vous disposez d'un moyen de rechercher et de remplacer du texte.

  1. Extraire le fichier QGS du QGZ :

    $ décompressez map.qgz map.qgs
  2. Ajouterestimatemetadata=trueà toutes les descriptions de sources de données PostGIS dans le QGS. Dans mon fichier particulier, j'ai trouvé ceux-ci en XMLetMots clés.

    Pour mon fichier particulier, j'ai vérifié et j'ai vu que toutes ces lignes n'avaient pasestiméemétadonnées=, donc plutôt que de changerestimatemetadata=falseàestimatemetadata=true, j'ai dû ajouter un nouveauestimatemetadata=true. J'ai recherché une chaîne qui se trouvait au milieu de toutes les descriptions de sources de données, afin que je puisse faire l'équivalent d'une recherche et d'une insertion en utilisant un remplacement de texte. La chaîne que j'ai trouvée dans mon fichier étaitcheckPrimaryKeyUnicity=, j'ai donc lancé la commande suivante :

    $ sed -i 's/checkPrimaryKeyUnicity/estimatedmetadata=true checkPrimaryKeyUnicity/g' map.qgs

    Vous devrez peut-être adapter cela aux détails de votre fichier spécifique, apporter les modifications de manière plus manuelle ou utiliser un outil avec des fonctionnalités d'édition spécifiques à XML.

  3. Remplacez le fichier QGS dans le QGZ :

    $ zip -u map.qgz map.qgs

Stockez et visualisez votre raster dans le Cloud avec COG et QGIS

Nous avons récemment travaillé pour l'Agence spatiale française ( CNES ) qui avait besoin de stocker et de visualiser des rasters satellites dans une plateforme cloud. Ils souhaitent accéder aux données brutes de l'image, sans transformation, afin d'effectuer des analyses approfondies telles que l'étalonnage des instruments. L'utilisation d'un standard de serveur cartographique classique comme WMS ou TMS n'est pas une option car ces services transforment les jeux de données en tuiles déjà rendues.

Nous avons choisi d'utiliser un format assez récent géré par GDAL, le COG (Cloud Optimize Geotiff) et cibler la plateforme cloud d'OVH car elle fournit OpenStack, une plateforme de cloud computing open source.


Ce code crée une fenêtre avec les conditions que l'utilisateur ne peut pas modifier les dimensions de la fenêtre Tk() et désactive également le bouton Agrandir.

Dans le programme, vous pouvez modifier les dimensions de la fenêtre avec la réponse de @Carpetsmoker, ou en faisant ceci :

Il devrait être assez facile pour vous de l'implémenter dans votre code. :)

Vous pouvez utiliser minsize et maxsize pour définir une taille minimale et maximale, par exemple :

Donnera à votre fenêtre une largeur et une hauteur fixes de 666 pixels.

S'assurera que votre fenêtre est toujours au moins 666 pixels de large, mais l'utilisateur peut toujours agrandir la fenêtre.


Installation de QGIS

Vous pouvez télécharger QGIS à partir du lien suivant [5] en utilisant le vert Télécharger maintenant bouton. Choisissez votre plateforme : Windows, Mac OS X, Linux, BSD ou Android dans les différents menus déroulants de la page de téléchargement (Windows sera utilisé pour ce tutoriel). Si vous avez Windows, vérifiez vos spécifications, car vous utiliserez soit 32 bits, soit 64 bits. Sélectionnez la dernière version autonome et téléchargez le programme d'installation .exe. Une fois téléchargé, accédez à l'emplacement où le programme d'installation .exe a été téléchargé, exécutez-le et utilisez l'assistant d'installation qui apparaît pour configurer le programme.

Une fois QGIS complètement installé sur votre ordinateur, exécutez-le soit via l'icône du bureau, soit via le lanceur du menu Démarrer. Une fois ouvert, une fenêtre de programme comme la figure devrait apparaître. Pour créer un fichier de projet pour notre projet, cliquez sur Projet dans le coin supérieur gauche, et Enregistrer sous. Accédez au dossier créé à l'étape précédente, donnez un nom au projet, comme Tutoriel de géoréférencement, et frapper sauver.


Comment empêcher tensorflow d'allouer la totalité d'une mémoire GPU ?

Je travaille dans un environnement dans lequel les ressources de calcul sont partagées, c'est-à-dire que nous avons quelques machines serveurs équipées chacune de quelques GPU Nvidia Titan X.

Pour les modèles de petite à moyenne taille, les 12 Go du Titan X suffisent généralement à 2 à 3 personnes pour exécuter simultanément des entraînements sur le même GPU. Si les modèles sont suffisamment petits pour qu'un seul modèle ne tire pas pleinement parti de toutes les unités de calcul du GPU, cela peut en fait entraîner une accélération par rapport à l'exécution d'un processus de formation après l'autre. Même dans les cas où l'accès simultané au GPU ralentit le temps d'entraînement individuel, il est toujours agréable d'avoir la flexibilité de permettre à plusieurs utilisateurs de s'entraîner simultanément sur le GPU.

Le problème avec TensorFlow est que, par défaut, il alloue la totalité de la mémoire GPU disponible lors de son lancement. Même pour un petit réseau de neurones à deux couches, je constate que les 12 Go de la mémoire GPU sont utilisés.

Existe-t-il un moyen de faire en sorte que TensorFlow n'alloue, disons, que 4 Go de mémoire GPU, si l'on sait que cela suffit pour un modèle donné ?


A.5. Version 3.0.0rc2

Si vous compilez avec PostgreSQL+JIT, LLVM >= 6 est requis

Les versions PostgreSQL prises en charge pour cette version sont : PostgreSQL 9.5 - PostgreSQL 12 GEOS >= 3.6. Fonctionnalités supplémentaires activées si vous exécutez Proj6+ et/ou PostgreSQL 12. Améliorations des performances si vous exécutez GEOS 3.8+

Faits saillants majeurs

4534, Correction d'une fuite dans lwcurvepoly_from_wkb_state (Raúl Marín)

4536, Correction d'une fuite dans lwcollection_from_wkb_state (Raúl Marín)

4537, Correction d'une fuite dans l'analyseur de la collection WKT (Raúl Marín)

4535, WKB : éviter le débordement de la mémoire tampon (Raúl Marín)


Vendredi 27 février 2015

Télédétection - Qu'est-ce qui devrait venir en premier - L'étalonnage radiométrique ou le co-enregistrement ?

Pour une paire d'images, dans le pré-traitement des images satellites, quelle étape doit venir en premier - Calibrage radiométrique ou co-registration ?

Supposons que nous ayons deux images que nous voulons co-enregistrer ou une image que nous voulons enregistrer sur terre :

Premier pas est de supprimer les erreurs dans chaque image à la fois géométriquement et radiométriquement. Chaque image comporte des erreurs géométriques dues à :


  • Rotation de la Terre
  • Décalage du temps de numérisation
  • Ratio d'aspect
  • Effet panoramique (erreur de nœud papillon)
  • Courbure de la Terre

Ces erreurs entraîneront une dérive des pixels lors de l'acquisition de l'image et affecteront ainsi les informations radiométriques. Ainsi, lorsque nous supprimons (transférons les pixels à leur position correcte dans l'image) ces erreurs géométriques, nous devons également effectuer une interpolation radiométrique. L'interpolation radiométrique peut se faire par :

De plus, si les deux images ont des tailles différentes, nous devons les redimensionner dans cette étape grâce aux techniques d'interpolation ci-dessus.

Deuxième étape consiste à co-enregistrer (déterminer la transformation mathématique entre deux images) les images. Cela peut se faire de différentes manières. L'un d'eux est d'enregistrer les deux images sur terre. Lorsque les deux images sont enregistrées à la terre (le même système de référence), elles seront co-enregistrées l'une à l'autre.
Différents modèles mathématiques sont utilisés pour l'enregistrement en fonction de différents facteurs, notamment le type de capteur utilisé pour acquérir les images. L'un d'eux qui est utilisé dans les images HRSI est les coefficients RPC indépendants du terrain

Ainsi, nous supprimons toujours les erreurs dans chaque image en premier (calibrage de chaque image) puis les co-enregistrons. Cela est vrai pour toutes sortes d'images en télédétection, y compris les images PolSAR, InSAR, hyperspectrales et multispectrales.

Deux images sont co-enregistrées lorsqu'elles sont toutes deux exemptes d'erreurs

Système de coordonnées - Projection papillon Waterman dans Mapnik

Comme le titre l'indique, comment quelqu'un configurerait-il Mapnik pour utiliser la projection papillon Waterman ?

Sinon, quels autres outils seraient capables de rendre en utilisant cette projection ?

Je ne pense pas que mapnik ou proj4 soient capables de rendre ce genre de projection.

Selon cet excellent article, Openlayers avec la bibliothèque protovis serait capable de restituer non pas exactement la projection Waterman mais la projection Fuller (également appelée Dymaxion).

Vous avez même un exemple en ligne ici.

Pyqgis - Impression d'une carte centrée à partir d'un projet QGIS pour chaque point du fichier de formes ?

Je dois produire de l'ordre de 100 cartes centrées sur chaque point d'intérêt dans un fichier de formes. Je voudrais préparer toutes les couches dans un projet QGIS maître et configurer la composition pour un point (afin que l'impression de 100 cartes puisse être effectuée manuellement, si besoin est).

J'aurais quelque chose comme les couches suivantes :

Et j'aimerais ensuite automatiser l'impression en svg quelque chose comme :


  1. Pour chaque point d'un fichier de formes
  2. Centrez le canevas de la carte sur ce point

Je suis raisonnablement certain de savoir comment faire 1 et 2, mais je n'ai pas trouvé de détails sur 3 et 4 sur ce site.


  1. Dans le compositeur d'impression, activez l'atlas et utilisez la couche de points comme couche de couverture d'atlas.
  2. Définissez l'élément de la carte à contrôler par l'atlas et choisissez l'échelle fixe

De retour dans la fenêtre principale de QGIS, pour chaque couche que vous souhaitez filtrer en fonction d'une certaine distance au point, utilisez la symbologie basée sur des règles et utilisez la règle suivante

inside($geometry, buffer(@atlas_geometry, distance))

Comment obtenir une fonctionnalité pour une bbox donnée à partir d'un fichier de formes par ogr

J'ai des caractéristiques point, ligne, polygone au format shapefile, maintenant je veux obtenir des caractéristiques pour une bornbox donnée, est-il possible de supprimer les caractéristiques de la bbox ?

Et pour un polygone, je pense qu'il faut le fermer.

Je me demande si c'est possible ?

Postgis - Recherche de points le long d'un chemin

Je ne suis pas sûr de la meilleure approche pour ce problème. Je peux penser à quelques façons de le faire que je vais énumérer ci-dessous, mais je cherche la façon la meilleure et la plus efficace de le faire.


    Étant donné un nombre variable de points, créez un « itinéraire » ou une ligne entre les points.

Remarque : le rayon ne doit pas nécessairement être un cercle. A,B,C,D peuvent utiliser des cadres de délimitation rectangulaires.


  • Tableau avec points (x,y - techniquement lat/lon)
  • Points d'entrée pour créer un itinéraire

Nous utilisons PostgreSQL (8.4) et PostGIS (1.3.6) et Python.

C'est la solution que j'ai trouvé. Les pensées? Des idées ? Saisir?


  • Créez trois "tubes" polygonaux (A->B, B->C, C->D)
  • Filtrer les points uniquement sur ceux des polygones.
  • Soustraire B->C de A->B pour que les polygones ne se chevauchent pas (pas de doublons)
  • Soustraire C->D de B->C pour que les polygones ne se chevauchent pas (pas de doublons)

Mon approche était naïve, après avoir pris un certain temps et examiné les méthodes PostGIS, j'ai proposé cet unique appel SQL. Notez que c'est spécifique à notre base de données, mais cela pourrait aider quelqu'un à l'avenir. Je suis sûr qu'il pourrait être amélioré aussi.

J'ai dû projeter les données car j'utilise PostGIS 1.3.4 qui ne prend pas en charge le type de géographie.

Fondamentalement, ce que je fais, c'est que j'utilise ST_MakeLine et une requête pour localiser les "aérodromes" et renvoyer leur géométrie.

J'ai dû les commander (en utilisant la directive CASE) pour que la ligne soit connectée dans le bon ordre.

Je projette ensuite et tamponne cette ligne pour créer un polygone que je peux ensuite utiliser pour voir quels autres aérodromes croisent le polygone tamponné.

À l'aide de la ligne non tamponnée (route) et de l'appel ST_Line_Locate_Line, je commande ensuite les aérodromes découverts tels qu'ils apparaissent le long du chemin.

Vous avez besoin de deux fonctions postgis ST_Buffer et ST_Line_Locate_Point .

Violation d'accès dans l'application multithread ArcObject

Je pense avoir compris. La cause d'exception la plus probable dans une application multithread peut être :

Lorsque les deux threads essaient d'ouvrir la même classe d'entités, cela se brise : car l'un des threads est déjà en train de l'ouvrir et l'autre essaie de faire de même, cela donne donc une erreur comme :

"La mémoire n'a pas pu être lue ou écrite à partir de la mémoire protégée"

C'est ma supposition, mais ce qui m'étonne, c'est pourquoi il n'y a pas de séparation des préoccupations, même si j'ouvre un espace de travail différent dans chaque thread. Peut être des Arcobjects en interne, recherche le même espace d'adressage pour tout objet de la base de données. J'ai écrit quelques lignes de code et essayé de l'exécuter avec différents threads ouvrant différentes classes d'objets et cela casse également mais

quand, je délègue quelques threads pour ouvrir la même classe d'entités qu'il rompt avec les erreurs ci-dessus.

En outre, ne pas libérer de mémoire est également l'autre cause de telles erreurs.

Ajout de code pour plus de clarification :

Le code ci-dessus rompt avec ladite exception la plupart du temps.

@AndOne, j'utilise la connexion directe spatiale Oracle. De plus, j'ai créé une nouvelle classe d'entités et exécuté le même code contre elle, cela échoue également lorsque les threads sont augmentés. Il y a quelques différences que je pourrais comprendre entre ces deux classes d'entités :

Sql - Intersection PostGIS et résumé des attributs

Je suis généralement un utilisateur de bureau ArcGIS, mais je souhaite commencer à utiliser davantage PostGIS et j'ai un très gros travail de traitement à faire. Je ne sais pas quelles fonctions utiliser, j'espère que quelqu'un pourra vous aider.

J'ai un jeu de données de polygones (plusieurs millions d'entités), basé sur un type de classification d'utilisation des terres/couverture des terres (20 catégories). J'ai un certain nombre de régions dans un autre ensemble de données.

Pour chacune des régions, j'aimerais connaître la superficie de chaque classification d'occupation du sol.

Dans ArcGIS (s'il s'agissait d'un jeu de données plus petit), j'imagine d'abord ajouter la région à chacun des polygones de la table attributaire à l'aide d'une jointure. Puis en utilisant "résumé" sur le tableau par région et par classification d'occupation du sol.

Vous ne savez pas par où commencer dans PostGIS / SQL.

Wow merci cela a été d'une grande aide.

Il a fonctionné longtemps (44 heures !) et maintenant j'obtiens :

Je suppose qu'il s'agit d'un problème dans les données d'origine - juste un cas d'examen des données d'origine ou puis-je d'abord vérifier la topologie d'une manière ou d'une autre pour l'ensemble des données ? Y a-t-il quelque chose à propos de l'acceptation de certaines erreurs/tolérances de traitement ?

En supposant que vous ayez la disposition de table suivante

Les valeurs de superficie par type de couverture terrestre par région peuvent être calculées en utilisant

ST_Intersection est utilisé pour tenir compte des polygones de couverture terrestre qui ne sont que partiellement dans une région.

Arcgis desktop - Comment créer une couche d'événement d'itinéraire ?

J'utilise ArcGis 10.1 mais je suis un débutant dans ce programme.

Je souhaite créer une couche d'événement d'itinéraire basée sur un itinéraire que j'ai déjà défini. Ma question est à la troisième ligne lorsque le programme me demande une table d'événements d'entrée. J'ai lu quelques explications sur cet outil, mais chacune d'entre elles explique de quelle table il s'agit. Dois-je créer un tableau excel ? Si oui, à quoi doit-il ressembler ?

Vous devez fournir une table. Il peut s'agir d'un fichier .dbf, d'une table de géodatabase ou d'une feuille d'un fichier Excel. Je recommanderais d'exporter Excel/.dbf vers une table de géodatabase pour m'assurer que les types de données de champ sont correctement convertis.

Après avoir fourni la table, vous devrez fournir plusieurs champs (en gros, mappez les champs de votre table d'entrée aux champs requis). Vous pouvez lire la signification de ces champs ici sur la page d'aide Créer une couche d'événement d'itinéraire (référencement linéaire).

Si vous débutez dans le référencement linéaire, envisagez de suivre le didacticiel ArcTutor fourni avec votre support ArcGIS. Vous pouvez également le télécharger à partir du portail d'assistance à la clientèle Esri.

Qgis - Étiquettes verticales/horizontales lors de l'étiquetage de polygones circulaires au périmètre ?

J'ai plusieurs polygones (cercles) que je veux étiqueter avec leur numéro d'identification. L'étiquette doit être en dehors des cercles, j'utilise donc les options de positionnement "Utiliser le périmètre" et la case à cocher "À côté de la ligne (ou similaire, mon qgis parle espagnol. ).

QGIS aligne désormais automatiquement les étiquettes avec la courbure de la ligne. Existe-t-il une option ou un moyen de les orienter horizontalement ?


3 réponses 3

Bien que la réponse de @ sysdmin1138 soit correcte, il convient de mentionner que la modification de la portée n'est pas la seule raison pour laquelle des éléments manquent à la vue. Il y a des choses qui invisible par défaut.

Certains objets tels que physiqueLivraisonNomBureau sont masqués, vous ne pouvez donc pas les déléguer facilement. De nombreux autres attributs sont également masqués, mais physicalDeliveryOfficeName est très spécifique et peut être un bon exemple de la façon dont les choses fonctionnent pour la délégation.

L'onglet Autorisations par propriété pour un objet utilisateur que vous visualisez via Utilisateurs et ordinateurs Active Directory peut ne pas afficher toutes les propriétés de l'objet utilisateur. En effet, l'interface utilisateur du contrôle d'accès filtre les types d'objets et de propriétés pour faciliter la gestion de la liste. Alors que les propriétés d'un objet sont définies dans le schéma, la liste des propriétés filtrées qui sont affichées est stockée dans le Dssec.dat fichier qui se trouve dans le %systemroot%System32 dossier sur tous les contrôleurs de domaine. Vous pouvez modifier les entrées d'un objet dans le fichier pour afficher les propriétés filtrées via l'interface utilisateur.

Une propriété filtrée ressemble à ceci dans le Dssec.dat fichier:

Pour afficher les autorisations de lecture et d'écriture pour une propriété d'un objet, vous pouvez modifier la valeur du filtre pour afficher une ou les deux autorisations. Pour afficher à la fois les autorisations de lecture et d'écriture d'une propriété, remplacez la valeur par zéro (0) :

Pour afficher uniquement l'autorisation d'écriture pour une propriété, remplacez la valeur par 1 :

Pour afficher uniquement les autorisations de lecture d'une propriété, remplacez la valeur par 2 :

Après avoir modifié le fichier Dssec.dat, vous devez quitter et redémarrer Utilisateurs et ordinateurs Active Directory pour voir les propriétés qui ne sont plus filtrées. Le fichier est également spécifique à la machine, donc le modifier sur une machine ne met pas à jour toutes les autres. C'est à vous de décider si vous voulez qu'il soit visible partout ou non.

L'histoire complète sur physicalDeliveryOfficeName et comment le changer avec des captures d'écran peut être lue sur mon blog.

PS1. Étant donné que physicalDeliveryOfficeName est un cas spécial, après avoir modifié ce paramètre, recherchez Emplacement du bureau en lecture/écriture. Malheureusement le nom physiqueLivraisonNomBureau ne se présente jamais.

PS2. À moins que ces paramètres ne soient découverts en modifiant dssec.dat, vous ne pourrez pas les voir. Étant donné que ce fichier est par ordinateur, il est tout à fait possible qu'il soit visible sur certains ordinateurs et non visible sur d'autres, selon que quelqu'un a effectué la modification plus tôt ou non. Cela pourrait expliquer pourquoi vous pouviez le voir avant et pas plus tard.

PS3. Désolé pour la résurrection, mais je viens de passer quelques heures à essayer de trouver la cause, alors j'ai pensé la partager pour référence future.


Vous pouvez toujours appeler un shell cmd avec des droits d'administrateur (ou toute autre méthode runas) et utiliser un outil tel que SETX pour modifier le chemin de manière permanente. Les shells existants et/ou les programmes en cours d'exécution utiliseront probablement l'ancien chemin, mais tout nouveau shell/programme utilisera les nouveaux paramètres.

Pour les comptes sans privilèges d'administrateur :

Ouvrez « Comptes d'utilisateurs » et choisissez « Modifier mes variables d'environnement » (http://support.microsoft.com/kb/931715).

Cette boîte de dialogue vous montrera vos variables utilisateur actuelles ainsi que les variables système. Vous devrez peut-être ajouter une variable PATH locale si vous ne l'avez pas déjà fait.

Pour mettre à jour votre chemin afin d'inclure le répertoire Python 3.3, par exemple, cliquez sur Nouveau :

Nom de la variable : PATH Valeur de la variable : %PATH%C:Python33

Cela crée un PATH local en prenant le PATH système actuel et en y ajoutant.


Mercredi 25 février 2015

Geoserver - OpenLayers 3: Cross-Origin Request Blocked: The Same Origin Policy interdit

En utilisant OpenLayers 3, je ne parviens pas à faire disparaître ce message :

J'ai essayé de définir le paramètre crossOrigin sur :

Je ne vois que le contrôle de zoom avant/arrière mais le calque n'est pas rendu.

Je suis allé avec l'option 3 de Simon ci-dessous. J'ai activé CORS dans GeoServer en copiant les fichiers jar jetty-servlets nécessaires et en l'activant dans WEB-INFweb.xml :

Après cela, j'ai testé à nouveau la page et j'ai reçu la même erreur :

On dirait qu'il me manque encore quelque chose. Dois-je faire quelque chose du côté OpenLayers ?

J'ai fini par me débarrasser de Jetty et désinstaller complètement GeoServer. Le problème est que lorsque vous installez le programme d'installation de windows geoserver, il installe une version de jetty qui a 4 ans ! (Jetty version 6.1.8) Même si j'avais copié les fichiers jar pour CORS, il n'est pris en charge que dans Jetty 7+.

J'ai découvert que vous pouvez installer un fichier WAR. J'ai décidé d'utiliser Tomcat car c'est sur quoi GeoServer est principalement testé selon cette note du site GeoServer :

Remarque GeoServer a été principalement testé à l'aide de Tomcat et, par conséquent, ces instructions peuvent ne pas fonctionner avec d'autres applications de conteneur.

Voici les instructions pour installer le fichier WAR :

C'est aussi une belle vidéo explicative :

Une fois l'installation terminée, vous activez CORS :

Base de données spatiale - Besoin d'un format vectoriel modifiable dans QGIS et prenant en charge les noms de colonnes de caractères >10

Pour les raisons, je dois créer une nouvelle colonne dans un fichier de formes vectorielles avec un nom de plus de 10 caractères et l'exporter au format mapinfo TAB. Je sais que les .shp ne prennent pas en charge les noms de colonnes > 10 caractères, donc je recherche un format intermédiaire qui soit à la fois modifiable dans QGIS, permet l'ajout de colonnes après l'ajout de fonctionnalités et prend en charge les noms de colonnes > 10 caractères MAJUSCULES. Tous les formats vectoriels semblent prendre en charge une combinaison de ceux-ci, mais pas les trois.

Quelqu'un a-t-il déjà rencontré ce problème et/ou connaît-il un format prenant en charge ce cas d'utilisation ?

Toute base de données spatiale compatible SQL devrait fonctionner, y compris PostGIS (si vous utilisez un serveur PostGIS) ou SpatiaLite (mais notez les bizarreries sur le comportement mentionnées ci-dessous).

L'un ou l'autre satisfera à vos critères :


    Les identifiants (y compris les noms de colonnes) peuvent comporter jusqu'à 63 caractères dans une installation PostGIS par défaut (et cela peut être augmenté en modifiant la constante NAMEDATALEN du serveur). Je ne trouve aucune limite à la longueur des noms de colonnes dans les documents SQLite, et les articles de blog semblent confirmer qu'il n'y en a pas.

En général, les développeurs SQL essaieront d'éviter d'utiliser des identifiants sensibles à la casse. Cependant, des identifiants sensibles à la casse peuvent être créés à l'aide de guillemets. Sans guillemets, certaines bases de données (Oracle) plieront les identifiants en MAJUSCULES, certaines (PostgreSQL/PostGIS) plieront les identifiants en minuscules, et certaines (SQLite/SpatiaLite, SQL Server) sont en casse.conservation mais ne pas Cas-sensible.

Dans PostGIS, vous pouvez forcer les majuscules en utilisant des identifiants entre guillemets :

Notez que comme je ne fais jamais ce genre de création de table dans QGIS DB Manager, je ne sais pas si vous pouvez forcer les noms de colonnes en majuscules de cette façon, mais vous pouvez le faire en utilisant d'autres outils de gestion ou en écrivant vous-même le code SQL (que vous pouvez soumettre à l'aide de l'éditeur SQL de DB Manager) comme illustré ci-dessus.

Cela vous obligera à utiliser des guillemets dans tout code SQL que vous écrivez, en tant que SELECT COLUMN_NAME_1. sera plié en SELECT nom_colonne_1. en interne, et column_name_1 n'est pas égal à COLUMN_NAME_1 .

Pour SpatiaLite, le comportement est un peu étrange. SQLite conservera la casse de la colonne telle que créée (que vous citiez ou non l'identifiant), et la conservera également à l'exportation, mais dans tout SQL que vous écrivez, le nom de la colonne sera traité de manière insensible à la casse. Toute combinaison de lettres majuscules et minuscules sera acceptée indépendamment des citations, et SQLite traitera COLUMN_NAME_1 et column_name_1 comme des noms en conflit et ne pas vous permettent de créer les deux colonnes dans la même table. (PostGIS, OTH, autorisera les noms qui ne diffèrent que par la casse.)

Pour PostGIS ou SpatiaLite, la casse sera préservée si vous chargez la couche dans QGIS et exportez vers TAB à l'aide de la boîte de dialogue Enregistrer sous.

Plus d'informations sur la sensibilité à la casse des identifiants sont disponibles dans cet article de blog extrêmement informatif : http://www.alberton.info/dbms_identifiers_and_case_sensitivity.html

REMARQUE: La réponse originale ne traitait que de PostGIS. Sur la base de la réponse de @ user30184, j'ai considérablement modifié la réponse pour inclure des informations sur SpatiaLite.

Faire des arrêts dans un certain ordre afin de trouver l'itinéraire le plus court avec ArcGIS Network Analyst ?

Est-il possible de faire des arrêts non dans un certain ordre afin de trouver le trajet le plus court avec l'analyste du réseau ?

J'utilise maintenant les petits points verts comme arrêts d'entrée car je veux les lignes avec un point rose à côté dans l'itinéraire. Ensuite, je les réorganise et ne conserve pas la fin et le point de départ. Je pensais que cela signifiait que l'analyste de réseau ne fait pas une séquence réelle des arrêts d'entrée et ne choisit pas un vrai point de départ et d'arrivée, et trouve simplement le chemin le plus court entre les points.

Cependant, si je regarde la sortie de l'outil (vert clair), il semble que l'outil d'analyse de réseau utilise toujours une sorte de séquence et de point de début et de fin. Parce que sur l'image, il semble que le point vers lequel la flèche bleue pointe est un point de départ ou d'arrivée. La ligne rouge est l'itinéraire que je veux. La route fait donc maintenant un tour (à gauche où se trouve la flèche noire) en passant devant le segment sud au lieu d'aller vers le nord et se connecte via le petit lien gris près de la flèche bleue (comme la route rouge que je veux). La sortie verte que je reçois maintenant n'est pas le chemin le plus court.

J'ai pensé qu'un problème pourrait être que le point près de la flèche bleue est assigné par l'outil comme point de départ ou de fin et l'autre problème que l'analyste de réseau prend segment près de la flèche noire parce que le point au sud-ouest (cercle noir) vient plus tard dans la séquence que le point au milieu (cercle noir). Donc, il donne à chaque point 1,2,3 et ainsi de suite, au lieu de les fouler comme tous les 0,0,0. Donc, j'ai pensé que cela pourrait être résolu en ayant les arrêts comme points égaux (tous des zéros ou quelque chose du genre) et en calculant l'itinéraire le plus court entre ceux-ci au lieu d'avoir les arrêts comme une séquence et de passer de 1 à 2 et 3 et ainsi de suite. Mais je ne sais pas si c'est juste, voir aussi le dernier commentaire de @ChrisW, Utilisation de la fonction de ligne comme entrée d'arrêt dans l'analyste de réseau ?.


Voir la vidéo: Juha Tapio - Minä sinua rakastan + sanat (Octobre 2021).