Suite

Les commandes du shell GRASS ne fonctionnent pas dans QGIS


Exécution de GRASS 6.4.3 dans QGIS 2.4.0 sur Mac OS 10.10 Yosemite. J'essaie d'exécuter v.net.iso dans le shell GRASS, mais l'erreur suivante est renvoyée à chaque fois :

bash : v.net.iso : commande introuvable

Je l'ai fait avec succès il y a deux semaines avant de passer à Yosemite, mais je n'ai pas pu le faire fonctionner depuis. J'ai essayé un certain nombre d'autres commandes dans le module shell et j'obtiens la même erreur à chaque fois.


Il y a quelque chose qui ne va pas avec le Shell où il ne charge pas Grass /bin dans $ PATH Ma solution consiste à le faire manuellement à l'intérieur du Shell.

$ echo $PATH /usr/bin:/bin:/usr/sbin:/sbin $ PATH="/Applications/QGIS.app/Contents/MacOS/grass/bin:$PATH" $ export PATH $ echo $PATH /Applications /QGIS.app/Contents/MacOS/grass/bin:/usr/bin:/bin:/usr/sbin:/sbin

Je suis également sur OSX Yosemite en utilisant QGIS et GRASS, le shell GRASS dans QGIS ne démarre pas, mais il est de toute façon difficile à utiliser (il est difficile de copier-coller, la police est difficile à lire et il n'y a pas de curseur ou d'historique de commande ).

Je démarre GRASS dans le terminal OSX, en y faisant toutes les analyses, tandis que j'utilise GRASS dans QGIS pour exporter des fichiers de formes dans la base de données GRASS et pour les recharger dans QGIS, sans problèmes de serveur GRASS verrouillé.

Dans le terminal, démarrez GRASS en utilisant

$ Applications/QGIS.app/Contents/MacOS/grass/grass.sh


Les scripts WinGrass7 + ne sont pas trouvés dans la ligne de commande

démarrer WinGrass7 avec le raccourci de bureau "GRASS 7.0.SVN avec MSYS".

dans la ligne de commande wx-gui, tous les exe (vivant dans C:Program

FilesGRASS-70-SVNin) et les scripts (habitant dans C:Program FilesGRASS-70-SVNscripts) sont trouvés.

si je veux démarrer un script (vivant dans C:Program

FilesGRASS-70-SVNscripts) dans la ligne de commande msys-windows, les scripts sont introuvables (voir les messages ci-dessous ou la capture d'écran ci-jointe) :

Оения (1)

Téléchargez toutes les pièces jointes au format : .zip

Стория изменений (17)

Modifié il y a 11 mois par hellik

Comment:1 в ответ на: description Modifié il y a 11 лет par neteler

Salut,

a dans l'arbre osgeo4w-tree auto-compilé et emballé et installé par NSIS Wingrass7 (r42681)

démarrer WinGrass7 avec le raccourci de bureau "GRASS 7.0.SVN avec MSYS".

dans la ligne de commande wx-gui, tous les exe (vivant dans C:Program FilesGRASS-70-SVNin) et les scripts (vivant dans C:Program FilesGRASS-70-SVNscripts) sont trouvés.

si je veux démarrer un script (vivant dans C:Program FilesGRASS-70-SVNscripts) dans la ligne de commande msys-windows, les scripts ne sont pas trouvés (voir les messages ci-dessous ou la capture d'écran ci-jointe) :

Helmut

Commentaire:2 ответ на: description Modifié il y a 11 лет par glynn

Il semble que Markus ait modifié la description plutôt que de répondre. Pouvez-vous supprimer ceci et ouvrir un nouveau ticket ?

Comment:3 в ответ на: description Modifié il y a 11 лет par neteler

Le faux " est étrange. Peut-être un problème de citation ?

Commentaire:4 Modifié il y a 11 mois par neteler

Le faux " est étrange. Peut-être un problème de citation ?

Commentaire:5 в ответ на: description следующий: 6 Modifié il y a 11 лет par glynn

Vérifiez le paramètre de %GRASS_SH% .

Il devrait être défini avec quelque chose comme :

Il ne doit pas y avoir de guillemets, même si le nom de fichier contient des espaces.

Comment:6 о ответ на: 5 Modifié il y a 11 лет par hellik

En réponse à hellik :

Vérifiez le paramètre de %GRASS_SH% .

Il devrait être défini avec quelque chose comme :

ou alors:

Il ne doit pas y avoir de guillemets, même si le nom de fichier contient des espaces.

dans grass70.bat, qui invoque grass70.py, il y a :

et dans la ligne de commande WinGrass7 :

et sh.exe est dans C:Program FilesGRASS-70-SVNmsysin

Commentaire:7 следующий: 8 Modifié il y a 10 mois par hamish

Comment:8 ответ на: 7 следующий: 9 Modifié il y a 10 лет par glynn

7.0 n'a plus de scripts shell, donc cela devrait être discutable.

Comment:9 ответ на: 8 следующий: 10 Modifié il y a 10 лет par hellik

7.0 n'a plus de scripts shell, donc cela devrait être discutable.

testé avec WinGRASS-7.0.SVN-r48376-1-Setup.exe

Bienvenue dans GRASS 7.0.svn (2011)

Page d'accueil de GRASS : ​ http://grass.osgeo.org Cette version fonctionne via : shell (C:Program FilesGRASS 7.0.SVNmsysinsh.exe) L'aide est disponible avec la commande : g.manual - i Consultez les termes de la licence avec : g.version -c Si nécessaire, redémarrez l'interface graphique avec : g.gui wxpython Lorsque vous êtes prêt à quitter entrez : exit

Lancement de l'interface graphique 'wxpython' en arrière-plan, veuillez patienter. GRASS 7.0.svn> g.manual sh.exe": g.manual: commande introuvable GRASS 7.0.svn> r.grow sh.exe": r.grow: commande introuvable GRASS 7.0.svn> r.in.wms sh.exe ": r.in.wms: commande introuvable GRASS 7.0.svn> echo $GRASS_SH C:Program FilesGRASS 7.0.SVNmsysinsh.exe GRASS 7.0.svn> g.manual -ui sh.exe": g.manual : commande introuvable GRASS 7.0.svn> >>>

Comment:10 ответ на: 9 следующий: 11 Modifié il y a 10 лет par hellik

meilleure présentation des messages

des indices pour savoir pourquoi il semble qu'on ait essayé d'invoquer des scripts shell au lieu des scripts phytonisés dans grass70svn?

Commentaire:11 ответ на: 10 следующий: 12 Modifié il y a 10 лет par glynn

des indices pour savoir pourquoi il semble qu'on ait essayé d'invoquer des scripts shell au lieu des scripts pythonisés dans grass70svn?

#2 n'est pas requis pour bash, qui reconnaîtra les lignes "#!/usr/bin/env python" à condition qu'il y ait un interpréteur Python dans $PATH (ce qui ne devrait pas être le cas, mais c'est probablement le cas avec la configuration OSGeo4W ). Mais cmd.exe (et Python lui-même) utilisera les associations de fichiers pour l'extension .PY (que Python configurera s'il est installé correctement).

BTW, je crois que le "sh.exe" est dû au fait que vous tapez les commandes dans le shell, pas parce que quelque chose essaie d'exécuter la commande en tant que script shell.

Commentaire:12 ответ на: 11 следующий: 13 Modifié il y a 10 лет par martinl

Commentaire:13 ответ на: 12 следующий: 14 Modifié il y a 10 лет par glynn

J'oublie que nous avons affaire à bash ici. bash ignore PATHEXT et n'utilise pas non plus les extensions de fichier (sauf peut-être .bat?).

OTOH, cmd.exe utilise PATHEXT et les extensions de fichier mais ignore le shebang. Et, sous Windows, G_spawn() de GRASS, system() de C et os.system() et subprocess.Popen() de Python utilisent tous cmd.exe, pas bash.

Si nous voulons que les scripts Python fonctionnent dans bash, je pense que nous devrons créer des wrappers de script shell sans l'extension .py qui invoque le script via, par exemple. $GRASS_PYTHON. Ou demandez simplement aux utilisateurs de taper le ".py" lors de l'exécution de scripts à partir d'un shell. Ou, si nous ne sommes intéressés que par les shells lancés par GRASS, nous pouvons personnaliser le fichier .bashrc pour définir des alias pour tous les scripts Python, par exemple :

En fin de compte, l'utilisation de bash sur Windows sera toujours pénible, c'est un combat juste pour atteindre « adéquat » et presque impossible d'aller au-delà. Mais je ne sais pas si la prise en charge de bash est vraiment importante pour les utilisateurs réels de Windows (par opposition aux développeurs GRASS qui exécutent WinGRASS uniquement à des fins de test).

La priorité doit être de s'assurer que le support "natif" fonctionne, c'est-à-dire l'appel de scripts à partir de l'interface graphique, de cmd.exe, de scripts Python et de programmes C. Personnellement, je préférerais que la prise en charge de Windows + bash se limite aux informations sur le Wiki, afin que les utilisateurs comprennent qu'il s'agit d'une fonctionnalité "à vos risques et périls".

Comment:14 ответ на: 13 Modifié il y a 10 лет par hellik

J'oublie que nous avons affaire à bash ici. bash ignore PATHEXT et n'utilise pas non plus les extensions de fichier (sauf peut-être .bat?).

OTOH, cmd.exe utilise PATHEXT et les extensions de fichier mais ignore le shebang. Et, sous Windows, G_spawn() de GRASS, system() de C et os.system() et subprocess.Popen() de Python utilisent tous cmd.exe, pas bash.

pour le moment, wingrass7 "GRASS 7.0.SVN avec MSYS" est lancé de la manière suivante :


2 réponses 2

La solution exacte à votre problème est que vous devez importer les commandes sharepoint après l'installation.

Tapez ensuite les commandes requises pour vous connecter au service en ligne. Vous devez également être administrateur de locataire pour votre environnement Office 365.

Veuillez vous référer à l'image ci-dessous avec les détails exacts.

SharePoint Online Management Shell a moins de commandes que sa version sur site. Vous pouvez y lire toutes les commandes possibles : https://technet.microsoft.com/en-us/library/fp161397.aspx Si vous voulez vous connecter au service, vous devez commencer à partir de cette commande : Connect-SPOService Mais vous devez être un administrateur global dans Office 365 https://support.office.com/en-us/article/Introduction-to-the-SharePoint-Online-Management-Shell-c16941c3-19b4-4710-8056-34c034493429

Si vous souhaitez obtenir le Web, je vous suggère d'utiliser CSOM à partir de powershell. Le modèle d'objet client vous offre des fonctionnalités plus étendues pour la gestion de vos sites.


La commande ne fonctionne pas dans le fichier de script, mais fonctionne bien avec la commande shell

J'exécute une commande dans mon shell. Cela fonctionne bien dans le shell. Je veux dire juste dans le terminal. Mais j'ai besoin qu'il soit exécuté à partir d'un fichier de script. Lorsque je l'exécute à partir d'un script, le fichier spécifié dans une option de la commande n'est pas accessible. Cela donne la même erreur que si le chemin d'accès au fichier était incorrect. Le chemin d'accès au fichier en commande et en script est absolu. J'ai également essayé différentes variantes du chemin - dans le dossier racine, avec

devant, différents chemins absolus.

J'ai créé un fichier de script, en commençant par #!/bin/bash, puis la commande sur la ligne suivante. J'ai essayé de l'exécuter comme ceci :

J'ai également essayé de changer la première ligne en

J'ai essayé de combiner TOUTES les combinaisons de ligne d'en-tête et de commande d'exécution. Tous avec les mêmes résultats.

Lors de l'exécution à partir d'un fichier de script, le fichier passé dans une option n'est pas accessible. Mais exactement la même commande fonctionne parfaitement dans le shell. Le fichier est passé en option avec le chemin absolu, par exemple /home/ubuntu/file

mettre à jour: la commande en cours d'exécution est le s3fs. Une commande pour monter le compartiment s3 sur l'instance AWS en tant que dossier. Je veux le faire monter automatiquement au démarrage/redémarrage de l'instance, et je pense à exécuter le script avec @reboot de cron

J'ai résolu le problème du fichier de mot de passe en supprimant l'option et en définissant les informations d'identification dans le fichier de mot de passe par défaut .passwd-s3fs. Maintenant, sans option de fichier de mot de passe, la commande fonctionne correctement avec le script shell et ne fonctionne PAS dans le fichier de script shell, même problème.

mon fichier de script est comme ceci :

L'ajout d'options de débogage à la commande donne une telle sortie lorsqu'elle est exécutée dans un fichier de script :


Outils de chargement basés sur les fournisseurs¶

Outre le panneau du navigateur et le gestionnaire de bases de données, les principaux outils fournis par QGIS pour ajouter des couches quel que soit le format, vous trouverez également des outils spécifiques aux fournisseurs de données.

Quelque plugins externes proposent également des outils pour ouvrir des fichiers au format spécifique dans QGIS.

Charger un calque à partir d'un fichier¶

Pour charger une couche à partir d'un fichier, vous pouvez :

pour les données vectorielles (comme Shapefile, Mapinfo ou couche dxf), cliquez sur le bouton /> Ajouter une couche vectorielle dans la barre d'outils, sélectionnez le Calque Ajouter un calque ‣ />Ajouter une couche vectorielle option de menu ou appuyez sur Ctrl+Maj+V . Cela fera apparaître une nouvelle fenêtre (voir figure_vector_add) à partir de laquelle vous pouvez vérifier Déposer et cliquez sur [Parcourir]. Vous pouvez également spécifier l'encodage du fichier si vous le souhaitez.

pour les couches raster, cliquez sur l'icône /> Ajouter une couche raster, sélectionnez le Calque Ajouter un calque ‣ /> Ajouter une couche raster option ou type de menu Ctrl+Maj+R .

Cela fera apparaître une boîte de dialogue d'ouverture de fichier standard (voir figure_vector_open), qui vous permet de naviguer dans le système de fichiers et de charger un fichier de formes, un géotiff ou une autre source de données prise en charge. La boîte de sélection Filtre vous permet de présélectionner certains formats de fichiers pris en charge. Seuls les formats bien testés apparaissent dans la liste. D'autres formats non testés peuvent être chargés en sélectionnant Tous les fichiers (*.*) .

Ouvrir une boîte de dialogue de couche vectorielle prise en charge par OGR

Sélectionner un fichier dans la liste et cliquer [Ouvert] le charge dans QGIS. Plusieurs couches peuvent être chargées en même temps en maintenant la touche Ctrl ou alors Changement et en cliquant sur plusieurs éléments dans la boîte de dialogue. Figure_vector_loaded montre QGIS après le chargement du alaska.shp déposer.

QGIS avec Shapefile d'Alaska chargé

Parce que certains formats comme MapInfo (par exemple, .languette ) ou Autocad ( .dxf ) permettent de mélanger différents types de géométrie dans un seul fichier, le chargement d'un tel format dans QGIS ouvre une boîte de dialogue pour sélectionner les géométries à utiliser afin d'avoir une géométrie par couche.

Utilisation de l'outil Ajouter une couche vectorielle :

Vous pouvez également charger des formats spécifiques comme Couverture binaire ArcInfo , ROYAUME-UNI. Format de transfert national , ainsi que le format brut TIGER du Bureau de recensement des États-Unis ou alors OpenfileGDB . Pour ce faire, vous devez sélectionner Annuaire comme Type de Source. Dans ce cas, un répertoire peut être sélectionné dans la boîte de dialogue après avoir appuyé sur [Parcourir].

Avec le Base de données type de source, vous pouvez sélectionner une connexion à une base de données existante ou en créer une pour le type de base de données sélectionné. Les types de bases de données disponibles sont ODBC , Vecteurs OGDI , Géodatabase personnelle Esri , MySQL aussi bien que PostgreSQL ou alors MSSQL .

En appuyant sur le [Nouveau] le bouton ouvre le Créer une nouvelle connexion à la base de données OGR dialogue dont les paramètres sont parmi ceux que vous pouvez trouver dans Création d'une connexion stockée. Pressage [Ouvert] vous pouvez sélectionner parmi les tables disponibles, par exemple la base de données compatible PostGIS.

Le dernier type de source, Protocole, permet d'ouvrir des données depuis le web en utilisant par exemple GeoJSON ou alors CouchDB format. Après avoir sélectionné le type, vous devez remplir l'URI de la source.

Charger des couches et des projets à partir de disques externes montés sur macOS

Sur macOS, les disques portables montés à côté du disque dur principal n'apparaissent pas comme prévu sous Fichier Ouvrir le projet. Nous travaillons sur une boîte de dialogue d'ouverture/d'enregistrement plus native de macOS pour résoudre ce problème. Pour contourner le problème, vous pouvez taper /Volumes dans le Nom de fichier boîte et appuyez sur Entrer . Ensuite, vous pouvez naviguer vers les lecteurs externes et les montages réseau.

Importer un fichier texte délimité¶

Fichier texte délimité (par ex. .csv , .SMS ) peut être chargé dans QGIS à l'aide des outils décrits ci-dessus. Cependant, chargé de cette façon, il apparaîtra comme une simple table de données. Parfois, les fichiers texte délimités peuvent contenir des données géométriques que vous voulez visualiser c'est ce que le Ajouter un calque de texte délimité est conçu pour.

Cliquez sur l'icône de la barre d'outils Ajouter un calque de texte délimité dans la Gérer les calques barre d'outils pour ouvrir le Créer un calque à partir d'un fichier texte délimité dialogue, comme indiqué dans figure_delimited_text.

Tout d'abord, sélectionnez le fichier à importer (par exemple, qgis_sample_data/csv/elevp.csv ) en cliquant sur le [Parcourir] bouton. Une fois le fichier sélectionné, QGIS tente d'analyser le fichier avec le délimiteur le plus récemment utilisé. Pour permettre à QGIS d'analyser correctement le fichier, il est important de sélectionner le délimiteur correct. Vous pouvez spécifier un délimiteur en activant :

  • CSV (valeurs séparées par des virgules)
  • Délimiteurs personnalisés, en choisissant parmi des délimiteurs prédéfinis comme virgule , espace , languette , point-virgule .
  • ou alors Délimiteur d'expression régulière et saisir du texte dans le Expression domaine. Par exemple, pour changer le délimiteur en tabulation, utilisez (il s'agit d'une expression régulière pour le caractère de tabulation).

Une fois le fichier analysé, définissez Définition de la géométrie à Coordonnées des points et choisissez le X et Oui champs des listes déroulantes. Si les coordonnées sont définies en degrés/minutes/secondes, activez le Coordonnées DMS case à cocher.

Enfin, entrez un nom de calque (par exemple, élever ), comme indiqué dans figure_delimited_text. Pour ajouter la couche à la carte, cliquez sur [D'ACCORD]. Le fichier texte délimité se comporte désormais comme n'importe quelle autre couche de carte dans QGIS.

Il existe également une option d'assistance qui vous permet de supprimer les espaces de début et de fin des champs — Couper les champs. Aussi, il est possible de Supprimer les champs vides. Si nécessaire, vous pouvez forcer une virgule comme séparateur décimal en activant Le séparateur décimal est une virgule.

Si l'information spatiale est représentée par WKT, activez le Texte bien connu et sélectionnez le champ avec la définition WKT pour les objets ponctuels, linéaires ou surfaciques. Si le fichier contient des données non spatiales, activez Pas de géométrie (table d'attributs uniquement) et il sera chargé en tant que table ordinale.

De plus, vous pouvez activer :

    Utiliser l'index spatial pour améliorer les performances d'affichage et de sélection spatiale des entités Utiliser l'index de sous-ensemble Regarder le fichier pour surveiller les modifications apportées au fichier par d'autres applications pendant l'exécution de QGIS.

Importer un fichier DXF ou DWG¶

DXF et DWG les fichiers peuvent être ajoutés à QGIS par simple glisser-déposer à partir du panneau de navigation commun. Vous serez invité à sélectionner les sous-couches que vous souhaitez ajouter au projet. Les calques sont ajoutés avec des propriétés de style aléatoires.

Fichiers DXF contenant plusieurs types de géométrie (point, ligne et/ou polygone), le nom de la couche sera composé de <filename.dxf> entités <type de géométrie>.

Pour conserver la structure dxf/dwg et sa symbologie dans QGIS, vous pouvez utiliser le Projet ‣ Importation DWG/DXF. outil. En effet, le Importation DWG/DXF La boîte de dialogue vous permet d'importer dans la base de données GeoPackage n'importe quel élément du fichier de dessin.

Dans la boîte de dialogue, vous devez :

  • Saisissez un emplacement pour un fichier GeoPackage, qui sera créé pour stocker le contenu DWG/DXF dans
  • Spécifiez dans quel système de coordonnées se trouvent les données des données DWG
  • Utilisez ensuite le [Importer] pour sélectionner le fichier DWG/DXF à utiliser (un par géopackage). La base de données GeoPackage sera automatiquement remplie avec le contenu du fichier de dessin. Selon la taille du fichier *CAD, cela peut prendre un certain temps
  • Le />Développer les références de bloc transformera les blocs existants en éléments normaux
  • le />Utiliser des courbes fait passer le type de géométrie des couches en sortie à un incurvé une.

Après le .dwg ou alors .dxf les données sont importées dans la base de données GeoPackage le cadre dans la moitié inférieure de la boîte de dialogue est rempli avec la liste des couches du fichier importé. Là, vous pouvez sélectionner les couches à ajouter au projet QGIS :

  • En haut, définissez un Nom de groupe pour regrouper les fichiers de dessin dans le projet
  • Vérifier les couches à afficher : chaque couche sélectionnée est ajoutée à un groupe ad hoc qui contient des couches vectorielles pour les entités ponctuelles, de ligne, d'étiquette et de zone de la couche de dessin. Le style de chaque couche est configuré de manière à ressembler à l'apparence qu'il avait à l'origine dans *CAD
  • Vérifiez si le calque doit être visible à l'ouverture
  • Alternativement en utilisant le Fusionner les calques l'option place toutes les couches dans un seul groupe
  • presse [D'ACCORD] pour ouvrir les couches dans QGIS.

Importation de vecteurs OpenStreetMap¶

Ces dernières années, le projet OpenStreetMap a gagné en popularité car dans de nombreux pays, aucune géodonnée gratuite telle que des cartes routières numériques n'est disponible. L'objectif du projet OSM est de créer une carte du monde librement modifiable à partir de données GPS, de photographies aériennes ou de connaissances locales. Pour soutenir cet objectif, QGIS prend en charge les données OSM.

En utilisant le Panneau du navigateur, vous pouvez charger un .osm dans le canevas de la carte, auquel cas vous obtiendrez une boîte de dialogue pour sélectionner les sous-couches en fonction du type de géométrie. Les couches chargées contiendront toutes les données de ce type de géométrie dans le fichier et conserveront le osm structure de données de fichier.

Pour éviter de travailler avec une structure de données aussi complexe et pouvoir sélectionner uniquement les fonctionnalités dont vous avez besoin en fonction de leurs balises, QGIS fournit un outil d'importation OpenStreetMap de base et entièrement intégré :

  • Pour vous connecter au serveur OSM et télécharger les données, ouvrez le menu Vector ‣ OpenStreetMap ‣ Télécharger des données. . Vous pouvez sauter cette étape si vous avez déjà obtenu un .osm Fichier XML utilisant JOSM, Overpass API ou toute autre source
  • Le menu Vector ‣ OpenStreetMap ‣ Importer la topologie à partir de XML. convertira votre .osm dans une base de données SpatiaLite et créer une connexion à la base de données correspondante
  • Le menu Vector ‣ OpenStreetMap ‣ Exporter la topologie vers SpatiaLite. vous permet ensuite d'ouvrir la connexion à la base de données, de sélectionner le type de données que vous souhaitez (points, lignes ou polygones) et de choisir les balises à importer. Cela crée une couche géométrique SpatiaLite que vous pouvez ajouter à votre projet en cliquant sur le bouton /> Ajouter une couche SpatiaLite dans la barre d'outils ou en sélectionnant le bouton />Ajoutez la couche SpatiaLite. option de la Couche menu (voir section Couches SpatiaLite).

Le chargement des données GPS dans QGIS peut être effectué à l'aide du plugin principal : Outils GPS . Les instructions sont décrites dans la section GPS Eklenti.

GAZON¶

Le travail avec les données vectorielles GRASS est décrit dans la section Intégration SIG GRASS.

Couches SpatiaLite¶

La première fois que vous chargez des données à partir d'une base de données SpatiaLite, commencez par :

  • en cliquant sur le bouton /> Ajouter une couche SpatiaLite dans la barre d'outils
  • en sélectionnant le />Ajoutez la couche SpatiaLite. option de la Calque ‣ Ajouter un calque menu
  • ou en tapant Ctrl+Maj+L .

Cela fera apparaître une fenêtre qui vous permettra soit de vous connecter à une base de données SpatiaLite déjà connue de QGIS, que vous pouvez choisir dans le menu déroulant, soit de définir une nouvelle connexion à une nouvelle base de données. Pour définir une nouvelle connexion, cliquez sur [Nouveau] et utilisez le navigateur de fichiers pour pointer vers votre base de données SpatiaLite, qui est un fichier avec un .sqlite extension.

QGIS prend également en charge les vues modifiables dans SpatiaLite.

Outils liés à la base de données¶

Création d'une connexion stockée¶

Afin de lire et d'écrire des tables à partir des nombreux formats de base de données pris en charge par QGIS, vous devrez créer une connexion à cette base de données. Pendant que Panneau du navigateur QGIS est le moyen le plus simple et recommandé de se connecter et d'utiliser des bases de données à l'intérieur, QGIS fournit des outils spécifiques que vous pouvez utiliser pour vous connecter à chacune d'entre elles et charger leurs tables :

    Ajoutez une couche PostGIS. ou en tapant Ctrl+Maj+DAjouter une couche spatiale MSSQL ou en tapant Ctrl+Maj+MAjoutez la couche spatiale Oracle. ou en tapant Ctrl+Maj+OAjoutez la couche spatiale DB2. ou en tapant Ctrl+Maj+2

Ces outils sont accessibles soit depuis le Barre d'outils Gérer les calques ou la Calque Ajouter un calque ‣ menu. La connexion à la base de données SpatiaLite est décrite à Couches SpatiaLite.

Créer une connexion à la base de données à partir du panneau du navigateur QGIS

Sélectionnez le format de base de données correspondant dans l'arborescence du navigateur, cliquez avec le bouton droit de la souris et choisissez Connecter pour afficher la boîte de dialogue de connexion à la base de données.

La plupart des boîtes de dialogue de connexion suivent une base commune qui sera décrite ci-dessous en utilisant l'outil de base de données PostGreSQL comme exemple.

La première fois que vous utilisez une source de données PostGIS, vous devez créer une connexion à une base de données qui contient les données. Commencez par cliquer sur le bouton approprié comme indiqué ci-dessus, en ouvrant un Ajouter des tables PostGIS dialogue (voir figure_add_postgis_tables). Pour accéder au gestionnaire de connexion, cliquez sur le [Nouveau] bouton pour afficher le Créer une nouvelle connexion PostGIS dialogue.

Créer une nouvelle boîte de dialogue de connexion PostGIS

Les paramètres requis pour une connexion PostGIS sont exposés ci-dessous. Pour les autres types de bases de données, consultez leurs différences sur Exigences particulières de connexion.

Nom: un nom pour cette connexion. Cela peut être le même que Base de données.

Un service: Paramètre de service à utiliser alternativement au nom d'hôte/port (et éventuellement à la base de données). Ceci peut être défini dans pg_service.conf . Vérifier la Fichier de connexion au service PostgreSQL rubrique pour plus de détails.

Hôte: nom de l'hôte de la base de données. Il doit s'agir d'un nom d'hôte pouvant être résolu tel qu'il serait utilisé pour ouvrir une connexion TCP/IP ou envoyer un ping à l'hôte. Si la base de données est sur le même ordinateur que QGIS, entrez simplement hôte local ici.

Port: numéro de port sur lequel le serveur de base de données PostgreSQL écoute. Le port par défaut pour PostGIS est 5432 .

Base de données: Nom de la base de données.

Mode SSL: Comment la connexion SSL sera négociée avec le serveur. Notez que des accélérations massives dans le rendu de la couche PostGIS peuvent être obtenues en désactivant SSL dans l'éditeur de connexion. Les options suivantes sont disponibles :

  • Désactiver: essayez uniquement une connexion SSL non cryptée
  • Permettre: essayez une connexion non SSL. Si cela échoue, essayez une connexion SSL
  • Préférer (par défaut) : essayez une connexion SSL. Si cela échoue, essayez une connexion non-SSL
  • Exiger: essayez uniquement une connexion SSL.

Nom d'utilisateur: Nom d'utilisateur utilisé pour se connecter à la base de données.

Mot de passe: Mot de passe utilisé avec Nom d'utilisateur pour se connecter à la base de données.

Vous pouvez enregistrer l'un ou les deux Nom d'utilisateur et le mot de passe paramètres, auquel cas ils seront utilisés par défaut à chaque fois que vous devrez vous connecter à cette base de données. S'il n'est pas enregistré, vous serez invité à saisir les informations d'identification manquantes pour vous connecter à la base de données lors des prochaines sessions QGIS, tandis que les paramètres de connexion que vous avez saisis sont stockés dans un cache interne temporaire et renvoyés chaque fois qu'un nom d'utilisateur/mot de passe pour la même base de données est demandé, jusqu'à ce que vous fermiez le processus QGIS actuel.

Paramètres utilisateur et sécurité de QGIS

Dans le Authentification onglet, enregistrement Nom d'utilisateur et le mot de passe conservera les informations d'identification non protégées dans la configuration de la connexion. Ceux les identifiants seront visibles si, par exemple, vous avez partagé le fichier de projet avec quelqu'un. Par conséquent, il est conseillé de sauvegarder vos informations d'identification dans un Paramétrage de l'authentification plutôt (Configurations onglet - Voir Système d'authentification pour plus de détails) ou dans un fichier de connexion au service (voir Fichier de connexion au service PostgreSQL par example).

En option, selon le type de base de données, vous pouvez activer les cases à cocher suivantes :

    Afficher uniquement les couches dans les registres de couchesNe pas résoudre le type de colonnes non restreintes (GÉOMÉTRIE)Ne regardez que dans le schéma ‘public’Répertorier également les tables sans géométrieUtiliser les métadonnées de table estimées

Utiliser les métadonnées de table estimées pour accélérer les opérations

Lors de l'initialisation des couches, diverses requêtes peuvent être nécessaires pour établir les caractéristiques des géométries stockées dans la table de la base de données. Quand le Utiliser les métadonnées de table estimées est cochée, ces requêtes n'examinent qu'un échantillon des lignes et utilisent les statistiques de la table, plutôt que la table entière. Cela peut considérablement accélérer les opérations sur de grands ensembles de données, mais peut entraîner une caractérisation incorrecte des couches (par exemple, le nombre de caractéristiques des couches filtrées ne sera pas déterminé avec précision) et peut même provoquer un comportement étrange dans le cas où des colonnes censées être uniques le sont en réalité. ne pas.

Une fois tous les paramètres et options définis, vous pouvez tester la connexion en cliquant sur le bouton [Test de connexion] bouton ou appliquez-le en frappant [D'ACCORD]. Du Ajouter des tables PostGIS, cliquez maintenant sur [Relier] et la boîte de dialogue est remplie de tables de la base de données sélectionnée (comme indiqué dans figure_add_postgis_tables).

Exigences particulières de connexion¶

En raison des particularités du type de base de données, les options fournies sont toutes les mêmes pour toutes les bases de données. Ci-dessous sont exposées ces spécificités de connexion.

Fichier de connexion au service PostgreSQL¶

Le fichier de connexion au service permet d'associer les paramètres de connexion PostgreSQL à un seul nom de service. Ce nom de service peut ensuite être spécifié par un client et les paramètres associés seront utilisés.

Ça s'appelle .pg_service.conf sous les systèmes *nix (GNU/Linux, macOS etc.) et pg_service.conf sur Windows.

Le fichier de service ressemble à :

Il y a deux services dans l'exemple ci-dessus : eau_service et eaux_de_service . Vous pouvez les utiliser pour vous connecter à partir de QGIS, pgAdmin, etc. en spécifiant uniquement le nom du service auquel vous souhaitez vous connecter (sans les crochets englobants). Si vous souhaitez utiliser le service avec psql tu dois faire quelque chose comme export PGSERVICE=service_eau avant de faire vos commandes psql.

Vous pouvez trouver tous les paramètres ici

Si vous ne souhaitez pas enregistrer les mots de passe dans le fichier de service, vous pouvez utiliser l'option .pg_pass.

Sur les systèmes d'exploitation *nix (GNU/Linux, macOS, etc.), vous pouvez enregistrer le .pg_service.conf dans le répertoire personnel de l'utilisateur et les clients PostgreSQL en seront automatiquement informés. Par exemple, si l'utilisateur connecté est la toile , .pg_service.conf doit être enregistré dans le /accueil/web/ répertoire afin de travailler directement (sans spécifier d'autres variables d'environnement).

Vous pouvez spécifier l'emplacement du fichier de service en créant un PGSERVICEFILE variable d'environnement (par exemple, exécutez le export PGSERVICEFILE=/home/web/.pg_service.conf sous votre système d'exploitation *nix pour définir temporairement le PGSERVICEFILE variable)

Vous pouvez également rendre le fichier de service disponible à l'échelle du système (tous les utilisateurs) soit en plaçant le .pg_service.conf fichier à pg_config --sysconfdir ou en ajoutant le PGSYSCONFDIR variable d'environnement pour spécifier le répertoire contenant le fichier de service. Si des définitions de service portant le même nom existent dans le fichier utilisateur et le fichier système, le fichier utilisateur est prioritaire.

Il y a quelques mises en garde sous Windows :

  • Le fichier de service doit être enregistré sous pg_service.conf et non comme .pg_service.conf .
  • Le fichier de service doit être enregistré au format Unix pour fonctionner. Une façon de le faire est de l'ouvrir avec Notepad ++ et Modifier ‣ Conversion EOL ‣ Format UNIX ‣ Enregistrer le fichier.
  • Vous pouvez ajouter des variables environnementales de différentes manières. Une variable testée, connue pour fonctionner de manière fiable, est Panneau de configuration ‣ Système et sécurité ‣ Système ‣ Paramètres système avancés ‣ Variables d'environnement ajouter PGSERVICEFILE et le chemin du type C:UtilisateursJeanpg_service.conf
  • Après avoir ajouté une variable d'environnement, vous devrez peut-être également redémarrer l'ordinateur.
Connexion à Oracle Spatial¶

Les fonctionnalités spatiales d'Oracle Spatial aident les utilisateurs à gérer les données géographiques et de localisation dans un type natif au sein d'une base de données Oracle. En plus de certaines des options de Création d'une connexion stockée, la boîte de dialogue de connexion propose :

  • Base de données: SID ou SERVICE_NAME de l'instance Oracle
  • Port: numéro de port sur lequel le serveur de base de données Oracle écoute. Le port par défaut est 1521
  • Espace de travail: Espace de travail vers lequel basculer.

En option, vous pouvez activer les cases à cocher suivantes :

    Ne regarder que dans le tableau des métadonnées: restreint les tableaux affichés à ceux qui sont dans le all_sdo_geom_metadata vue. Cela peut accélérer l'affichage initial des tables spatiales Rechercher uniquement les tables des utilisateurs: lors de la recherche de tables spatiales, limitez la recherche aux tables appartenant à l'utilisateur Répertorier également les tables sans géométrie: indique que les tables sans géométrie doivent également être répertoriées par défaut Utiliser les statistiques de table estimées pour les métadonnées de la couche: lors de la mise en place de la couche, diverses métadonnées sont nécessaires pour la table Oracle. Cela inclut des informations telles que le nombre de lignes de la table, le type de géométrie et les étendues spatiales des données dans la colonne de géométrie. Si la table contient un grand nombre de lignes, la détermination de ces métadonnées peut prendre du temps. En activant cette option, les opérations de métadonnées de table rapides suivantes sont effectuées : Le nombre de lignes est déterminé à partir de all_tables.num_rows . Les étendues de table sont toujours déterminées avec la fonction SDO_TUNE.EXTENTS_OF, même si un filtre de couche est appliqué. La géométrie de la table est déterminée à partir des 100 premières lignes de géométrie non nulles de la table Uniquement les types de géométrie existants: ne listez que les types de géométrie existants et ne proposez pas d'en ajouter d'autres Inclure des attributs de géométrie supplémentaires.

Couches spatiales Oracle

Normalement, une couche Oracle Spatial est définie par une entrée dans le USER_SDO_METADATA tableau.

Connexion à DB2 Spatial¶

En plus de certaines des options décrites dans Création d'une connexion stockée, la connexion à une base de données DB2 (voir Couches spatiales DB2 pour plus d'informations) peut être spécifié à l'aide d'un nom de service/DSN défini sur ODBC ou à l'aide des informations sur le pilote, l'hôte et le port.

Un ODBC Service/DSN La connexion nécessite le nom de service défini sur ODBC.

Une connexion pilote/hôte/port nécessite :

  • Conducteur: Nom du pilote DB2. Il s'agit généralement du pilote IBM DB2 ODBC.
  • Hôte DB2: nom de l'hôte de la base de données. Il doit s'agir d'un nom d'hôte pouvant être résolu tel qu'il serait utilisé pour ouvrir une connexion TCP/IP ou envoyer un ping à l'hôte. Si la base de données est sur le même ordinateur que QGIS, entrez simplement hôte local ici.
  • Port DB2: numéro de port sur lequel le serveur de base de données DB2 écoute. Le port DB2 LUW par défaut est 50000 . Le port DB2 z/OS par défaut est 446 .

Couches spatiales DB2

Une couche DB2 Spatial est définie par une ligne dans le DB2GSE.ST_GEOMETRY_COLUMNS vue.

Afin de travailler efficacement avec les tables spatiales DB2 dans QGIS, il est important que les tables aient une colonne INTEGER ou BIGINT définie comme PRIMARY KEY et si de nouvelles fonctionnalités doivent être ajoutées, cette colonne doit également avoir la caractéristique GENERATED.

Il est également utile que la colonne spatiale soit enregistrée avec un identifiant de référence spatiale spécifique (le plus souvent 4326 pour les coordonnées WGS84). Une colonne spatiale peut être enregistrée en appelant le ST_Register_Spatial_Column procédure stockée.

Connexion à MSSQL Spatial¶

En plus de certaines des options de Création d'une connexion stockée, la création d'une nouvelle boîte de dialogue de connexion MSSQL vous propose de remplir un Fournisseur/DSN Nom. Vous pouvez également afficher les bases de données disponibles.

Charger une couche de base de données¶

Once you have one or more connections defined to a database (see section Creating a stored Connection), you can load layers from it. Of course, this requires having available data. See e.g. section Importing Data into PostgreSQL for a discussion on importing data into a PostGIS database.

To load a layer from a database, you can perform the following steps:

  1. Open the “Add <database> table(s)” dialog (see Creating a stored Connection),
  2. Choose the connection from the drop-down list and click [Connect].
  3. Select or unselect />Also list tables with no geometry.
  4. Optionally, use some />Search Options to reduce the list of tables to those matching your search. You can also set this option before you hit the [Connect] button, speeding this way the database fetching.
  5. Find the layer(s) you wish to add in the list of available layers.
  6. Select it by clicking on it. You can select multiple layers by holding down the Changement key while clicking.
  7. If applicable, use the [Set Filter] button (or double-click the layer) to start the Query builder dialog (See section Query Builder) and define which features to load from the selected layer. The filter expression appears in the sql column. This restriction can be removed or edited in the Layer Properties ‣ General ‣ Provider Feature Filter frame.
  8. The checkbox in the Select at id column that is activated by default gets the features ids without the attributes and speed in most cases the data loading.
  9. Clique sur le [Add] button to add the layer to the map.

Add PostGIS Table(s) Dialog

Load database table(s) from the Browser Panel

Like simple files, connected database are also listed in the Browser Panel. Hence, you can load tables from databases using the Browser:

  1. Find the layer to use with the Filter Browser tool at the top the browser panel (see The Browser Panel for the search options)
  2. select and drag-and-drop it in the map canvas.

3 réponses 3

To reset your path, remove the line that sets the path from your

/.bash_profile or equivalent, then reopen your Terminal.

Edit it with /usr/bin/nano, or /usr/bin/open, or TextMate, or any other text editor. It's not that no command can be reached, but that the PATH doesn't include these binaries—they can still be manually opened by providing the path or using cd to the directory.

You corrupted your PATH variable definition. Without any indication of which method you choosed to modify it, I will make the hypothesis that you modified it within your

To recover from this situation, you will have to come back to a working shell environment and then try to fix correctly and test your


Can I modify iTerm window titles for some but not all running commands?

I was looking for a solution to auto set custom title in the terminal based on what command is being run on the current terminal. So, rather than java showing in many tabs - I'd love to have it pick apart which java program is running not that all say just java.

I found very interesting and different answers yet not fully useful for my requierment

currently, I have written below line in

which works somewhat fine in **iTerm2 ** but it displays the complete command as a title but I want the specific argument or part of the string of command as a title

suppose I run this command in the terminal

sudo java - jar xyz_service/build/lib/xxx_snapshot.jar

and the terminal title being set as it is but I only want to set xyz_service as a title

note: above command always display update_terminal_cwd as a title in default bash shell terminal

my other trials which are not working though

  • macOS HighSierra v 10.13.3
  • iTerm2 build 2.15
  • shell is bash v 2.8 (400)

Can I do this without a wrapper alias in bash that explicitly sets the variable name?


2 réponses 2

Since you said you were experiencing this issue when running the script through cron, here are a couple ideas.

99% of the problems that arise when running scripts through cron are because of $PATH . The path used by cron is very minimal. You do specify the full path to the init script, so I wouldnt expect this to be the issue. Your script doesnt do anything else does it?

Also, in your script, if you are using bash, you can change the first line (the shebang) and add a second line as follows


Elastic Beanstalk configuration using ebextensions container_commands combining leader_only and test

For our Django app running on AWS Elastic Beanstalk, we use a web-server/worker setup. The same code is deployed to the web-server and worker environments, and environment-specific configuration is achieved with .ebextensions config files, using the test option for container_commands , among other things.

Now there are some container commands we would like to execute seul during deployment or environment-creation (so we use leader_only: true , see bottom), but, in addition, they should never be executed on the worker environment.

The latter could be achieved using the test option, but that cannot be used not in combination with leader_only , according to the docs:

. A command can be leader-only or have a test, but not both (leader_only takes precedence).

Now, to work around this, we do something like the following, in .ebextensions/foo.config :

where ENV_NAME contains the environment name, which is automatically retrieved with the help of option_settings (see docs).

Note that the config file is in YAML format and the commands and tests execute in a shell (I assume bash , since the extended test construct [[ works, but could not find any specifics in the AWS docs).

As I am ne pas an expert, I would really appreciate your comments on the following points:

The solution above works, but is this the simplest way to do it?

Are there any compelling reasons ne pas to use this kind of set-up?

I tried setting a variable instead of creating a file (in command 0100 ), but the variable does not appear to persist between container commands. Is there some way to achieve this? (I tried to export , but that didn't help. Is each container command executed in a separate shell, or how does this work?)

Some general background from the AWS docs:

You can use leader_only to only run the command on a single instance, or configure a test to only run the command when a test command evaluates to true. Leader-only container commands are only executed during environment creation and deployments, while other commands and server customization operations are performed every time an instance is provisioned or updated. Leader-only container commands are not executed due to launch configuration changes, such as a change in the AMI Id or instance type.


2 réponses 2

Simply, you cannot do that.

You sat up multi/handler with meterpreter reverse_tcp as payload and then you're gone to your victim machine and visited it like a website.

See, the multi/handler expect a connection from a meterpreter payload not from a web browser. That's why you couldn't execute anything.

To back up what I said, try it another time without the j and z options. When you go to your windows machine and visit your attack box, you will see that the connection is dropped after the user-agent string is showing.

How are you connecting from the target Windows machine back to your attacking machine?

It looks like since you're automatically backgrounding the session, you're not seeing where the session is never created. Try just "exploit" without the flags and you shouldn't get the meterpreter prompt like you are now. Does the session die after a minute or so?

In order to make this work, you'll need to find a vulnerability to exploit, which will deliver the payload and make it connect back to you. You should only have to use multi/handler for exploits launched outside of Metasploit, but it's not clear if you're doing that or not.

I searched around, found, and tested a vulnerable application that you can use to practice with in Windows 10. I don't know what the rules are for posting links for vulnerable software, so I'll just kind of direct you: Serviio Media Server has a command execution vulnerability in some of its older versions. Info on the Metasploit module is located here. I tested this with 1.7.1, so go to http://serviio.org/download and copy the link for the Windows version and change current version they're serving up (1.9.1) to 1.7.1 (literally just change the 9 to a 7).

Install Serviio Media Server on your Windows 10 box. I would recommend temporarily whitelisting the Drive:Program FilesServiioin directory in Windows Defender because it will catch Meterpreter.

From your attacking machine:

You'll see that you need to set the RHOST (your Win10 machine) and SRVHOST (your attacking machine).