Suite

Suppression des résultats du géotraitement dans ArcGIS sans fermer le fichier mxd

Suppression des résultats du géotraitement dans ArcGIS sans fermer le fichier mxd


J'essaie d'exécuter une boucle de quelques milliers de cartes dans ArcGIS Desktop 10.1, mais le programme continue de planter après avoir imprimé environ 100 cartes à la fois. J'ai lu sur GeoNet que je dois m'assurer que mes résultats dans la gestion des résultats ne sont jamais enregistrés, j'ai donc modifié mes paramètres en conséquence. Bien que cette mesure ait permis au fichier .mxd de conserver une taille constante, elle n'a pas résolu le problème du plantage d'ArcGIS après l'impression d'environ 100 cartes.

De plus, tant que je suis dans une seule session ArcGIS, tous les résultats sont toujours écrits dans la session actuelle dans les résultats. Il semble que la raison pour laquelle ArcGIS se bloque finalement est que trop de mémoire est occupée après la mémorisation des résultats d'environ 100 cartes.

Je veux juste exécuter une seule session ArcGIS (ne jamais fermer le fichier .mxd pendant l'exécution de la boucle) car j'ai des milliers de cartes à imprimer et je ne voudrais pas ouvrir et fermer le même fichier .mxd et exécuter le même Python script 20-30 fois.

Existe-t-il un moyen de supprimer les résultats de la session en cours à la fin de chaque itération de ma boucle for ?

J'espérais que cela empêcherait ArcGIS de se bloquer toutes les 100 cartes.

Dans mon script Python, j'ai d'abord lu des listes de paramètres pertinentes pour ma boucle à partir d'un fichier texte. Ensuite, je lance ma seule boucle for principale. À chaque itération, j'enregistre un buffer .shp et un polygone .shp dans un espace de travail :env.workspace = r"C:ArcGISMapping FilesAll Shapefiles"J'ai ensuite zoomé sur la couche tampon, exporté au format pdf et supprimé les deux nouvelles couches comme suit :

pour lyr dans arcpy.mapping.ListLayers(mxd, "Shape_" + object[i], df): arcpy.mapping.RemoveLayer(df, lyr) pour lyr dans arcpy.mapping.ListLayers(mxd, "Buffer_" + object[ i], df): arcpy.mapping.RemoveLayer(df, lyr) del mxd, df, lyr

Si vous n'avez pas déjà cet ensemble, je configurerais leOptions de géotraitementainsi:

En outre, vous pouvez toujours fermer par programme le document ArcMap et le rouvrir. Vous pouvez le faire à partir de python ou même d'un.chauve sourisscénario.

À partir de ce fil GeoNet, il semble que vous puissiez désactiver la journalisation viaarcpy.gp.logHistory = Fauxmais cela ne semble pas avoir d'impact. Sans surprise, la suppression des métadonnées deC:UtilisateursAppDataRoamingESRIDesktop10.0ArcToolboxHistoryn'a pas d'impact non plus...


Les données actuellement utilisées dans une autre application ArcGIS ne peuvent pas être supprimées : l'outil échoue avec l'ERREUR 000464 .

La suppression d'un fichier de formes supprime également les fichiers auxiliaires tels que les fichiers de métadonnées, de projection et d'index.

La suppression d'un dossier déplace le dossier vers la Corbeille du système, où il peut être restauré ou supprimé définitivement.

Les classes d'entités et les tables participant à un jeu de données d'analyse de réseau ou à une topologie ne peuvent pas être supprimées.

La suppression d'une mosaïque supprimera uniquement la mosaïque. Pour supprimer une mosaïque dans son intégralité, y compris les tables de la base de données et, éventuellement, les aperçus ou les caches créés avec elle, utilisez l'outil Supprimer la mosaïque.

La suppression d'un fichier de connexion à la base de données ne supprime pas la base de données d'entreprise. Un fichier de connexion à la base de données est simplement un raccourci vers la base de données.

La suppression d'une classe de relations supprime la ligne correspondant à cette relation de la table de relations.

À partir d'ArcGIS Pro 2.7 , l'outil Supprimer peut être utilisé pour supprimer plusieurs éléments.


Renvoie un objet DataFrame qui représente le bloc de données actuellement actif dans une carte ( .mxd ). La propriété activeDataFrame renvoie le bloc de données approprié même si la carte est en mode mise en page. Si vous souhaitez définir le bloc de données actif, utilisez la propriété activeView.

Permet de définir ou d'obtenir la vue active d'un document ArcMap sur un seul bloc de données ou sur la mise en page. La propriété fonctionne avec une chaîne qui représente le nom du bloc de données actif ou le mot clé PAGE_LAYOUT.

Si activeView est défini sur PAGE_LAYOUT et que la carte est enregistrée, la prochaine fois que la carte est ouverte, elle sera ouverte en mode mise en page. Si activeView est défini sur un nom de bloc de données et que la carte est enregistrée, la prochaine fois que la carte est ouverte, elle sera ouverte dans la vue des données, et ce bloc de données particulier sera le bloc de données actif.

Permet d'obtenir ou de définir les informations sur l'auteur du document ArcMap.

Permet d'obtenir ou de définir les crédits ou les informations de copyright de la carte.

Renvoie un objet DataDrivenPages qui peut ensuite être utilisé pour gérer les pages d'un document ArcMap activé pour les pages dynamiques.

Renvoie un objet datetime Python qui indique la date à laquelle la carte a été exportée pour la dernière fois. Cette valeur n'est actuelle que si la carte a été enregistrée après l'exportation de la carte.

Renvoie un objet datetime Python qui indique la date à laquelle la carte a été imprimée pour la dernière fois. Cette valeur n'est actuelle que si la carte a été enregistrée après l'impression de la carte.

Renvoie un objet datetime Python qui indique la date du dernier enregistrement de la carte.

Permet d'obtenir ou de définir les informations de description du document ArcMap.

Renvoie une valeur de chaîne qui indique le chemin d'accès complet de la carte et le nom de fichier.

Fournit la possibilité d'obtenir ou de définir le chemin de base ou l'URL utilisé pour les liens hypertexte basés sur des champs vers des documents ou des URL.

Renvoie True si le document ArcMap est activé pour les pages dynamiques.

Permet d'obtenir la taille de page de la mise en page. Il renvoie un tuple nommé avec les propriétés width et height .

Le script suivant présente quelques techniques différentes pour imprimer la largeur et la hauteur de la page d'un document ArcMap.

Permet de contrôler si un document ArcMap stocke les chemins relatifs vers les sources de données. Une valeur True définit les chemins relatifs, une valeur False définit les chemins complets vers les sources de données.

Permet d'obtenir ou de définir les informations récapitulatives du document ArcMap.

Permet d'obtenir ou de définir les informations de balise du document ArcMap. Séparez les balises par une seule virgule (,).

Permet d'obtenir ou de définir les informations de titre de la carte.


Démarrer ArcGIS Pro sans modèle

Lorsque vous démarrez ArcGIS Pro sans modèle, vous n'êtes pas invité à créer un projet. Cependant, vous avez la possibilité d'enregistrer votre travail en tant que projet à tout moment pendant votre session ArcGIS Pro.

Ce didacticiel suppose que vous utilisez certains paramètres d'application par défaut. Vous vérifierez ces paramètres et les modifierez si nécessaire avant de commencer à travailler.

  1. Démarrez ArcGIS Pro et connectez-vous si nécessaire.
  2. Sur la page de démarrage, dans le coin inférieur gauche, cliquez sur Paramètres . (Si vous avez un projet ouvert, cliquez sur l'onglet Projet à la place.)
  3. Sur la page des paramètres, cliquez sur l'onglet Options sur la gauche. Dans la boîte de dialogue Options, sous Application , cliquez sur Général .
  4. Sous Définir les options générales pour ArcGIS Pro , développez Démarrer ArcGIS Pro . Si nécessaire, cliquez sur Afficher la page de démarrage .
  5. Développez Créer des projets . Sous Géodatabase , si nécessaire, cliquez sur Nouvelle géodatabase par défaut pour chaque projet .

L'application s'ouvre sans aucune vue ouverte.

Si vous avez déjà un projet ouvert, cliquez sur l'onglet Projet sur le ruban. Sur la page des paramètres, cliquez sur Nouveau à gauche. Sous Modèles de projet , cliquez sur Démarrer sans modèle (vous pourrez l'enregistrer ultérieurement) . Si vous êtes invité à enregistrer les modifications, cliquez sur Oui ou Non selon votre préférence.


Les données actuellement utilisées dans une autre application ArcGIS ne peuvent pas être supprimées : l'outil échoue avec l'ERREUR 000464 .

La suppression d'un fichier de formes supprime également les fichiers auxiliaires tels que les fichiers de métadonnées, de projection et d'index.

La suppression d'un dossier déplace le dossier vers la Corbeille du système, où il peut être restauré ou supprimé définitivement.

La suppression d'un réseau géométrique rétrograde toutes les classes d'entités du réseau géométrique en types d'entités simples : les classes d'entités tronçons deviennent des classes d'entités linéaires et les classes d'entités jonctions deviennent des classes d'entités points. La suppression du réseau supprime également toutes les tables de réseau associées et la classe d'entités de jonction orpheline de la géodatabase.

Les classes d'entités et les tables participant à un jeu de données d'analyse de réseau ou à une topologie ne peuvent pas être supprimées.

La suppression d'une mosaïque supprimera uniquement la mosaïque. Pour supprimer une mosaïque dans son intégralité, y compris les tables de la base de données et, éventuellement, les aperçus ou les caches créés avec elle, utilisez l'outil Supprimer la mosaïque.

La suppression d'un fichier de connexion à la base de données ne supprime pas la base de données d'entreprise. Un fichier de connexion à la base de données est simplement un raccourci vers la base de données.

La suppression d'une classe de relations supprime la ligne correspondant à cette relation de la table de relations.

L'outil Supprimer peut être utilisé pour supprimer l'espace de travail in_memory. Lorsque l'espace de travail in_memory est supprimé, tous les ensembles de données de l'espace de travail sont supprimés, mais l'espace de travail in_memory reste, vous permettant de continuer à y écrire.

L'outil Supprimer peut être utilisé pour supprimer l'espace de travail mémoire. Lorsque l'espace de travail en mémoire est supprimé, tous les ensembles de données de l'espace de travail sont supprimés, mais l'espace de travail en mémoire reste, vous permettant de continuer à y écrire.


Automatiser les tâches de gestion des données : Project et Clip

L'exemple de workflow ci-dessous utilise deux outils de géotraitement, Project et Clip . Ceci n'est qu'un exemple d'un nombre infini de tâches que vous pouvez automatiser avec le géotraitement.

Supposons que vous ayez reçu 20 fichiers de formes d'un collègue, qu'ils se trouvent dans différentes projections cartographiques et qu'ils contiennent de nombreuses entités situées en dehors de votre zone d'étude. Votre tâche consiste à modifier la projection cartographique de chacun des 20 jeux de données, à supprimer les entités superflues ("découper" les jeux de données) et à les placer toutes dans une géodatabase fichier.

Le moyen de loin le plus simple d'accomplir cette tâche consiste à utiliser le géotraitement. Tout d'abord, vous devez utiliser l'outil Projet de géotraitement, qui applique une nouvelle projection à une classe d'entités en entrée pour créer une nouvelle classe d'entités en sortie. L'illustration ci-dessous montre la boîte de dialogue de l'outil Projeter avec ses entités en entrée affichées en haut à gauche et les entités projetées en haut à droite. Le système de coordonnées projetées est la conique à surface égale d'Albers.

La deuxième étape consiste à utiliser l'outil de découpe de géotraitement pour découper les données qui se trouvent en dehors de votre zone d'étude. L'outil Découper prend deux entrées, une classe d'entités de tout type (point, polyligne, polygone) et une classe d'entités surfaciques (la classe d'entités de découpage), et crée une nouvelle classe d'entités uniquement pour les entités qui se trouvent à l'intérieur des polygones de découpage.

Les outils Projet et Clip peuvent être utilisés en mode batch, ce qui vous permet de saisir la liste de vos 20 classes d'entités, et les outils s'exécutent automatiquement une fois pour chacune des 20 classes d'entités. Vous pouvez créer la liste en faisant glisser les classes d'entités de la fenêtre Catalogue vers la boîte de dialogue de l'outil.

Ou mieux encore, vous pouvez créer rapidement un modèle de géotraitement qui enchaîne les outils Projeter et Découper, alimentant la sortie de Projet dans l'entrée de Découper et utiliser le modèle en mode batch. Le modèle que vous créez devient un nouvel outil dans votre environnement de géotraitement.


Transformation de projection dans le fichier Layer/*.lyr dans MXD

J'ai une question sur l'architecture de l'information SIG qui fait tourner quelques-uns d'entre nous dans notre boutique ces derniers temps.

Comment appliquer une transformation de projection au sein d'un MXD ? J'ai des données d'une base de données SDE dans NAD83 mais j'ai besoin

il s'est transformé en WGS84 Web Mercator dans le MXD afin qu'il puisse être publié en tant que Web Mercator sur les services Web pour

éviter la pénalité de performance « projection à la volée » lorsque lesdits services Web sont consommés sur Internet. je

ont été approchés pour maintenir des copies redondantes des données dans SDE, dans chaque projection synchronisée avec la base de données

déclencheurs, mais mon équipe estime qu'il s'agit d'une solution inefficace qui peut être assez fragile.

Les exemples que j'ai trouvés appliquent la transformation dans un calque dans un MXD mais n'ont trouvé aucun calque "Coordonnées XY" calque

la propriété de projection sur laquelle appliquer la transformation. Seule source qui transformera les données SDE de base, ce qui n'est pas ce que nous voulons faire !

Nos données sont éditées dans NAD83 via Desktop mais doivent être consommées sur le Web dans Web Mercator (idéalement dans un

Si j'enregistre le calque dans un fichier .lry, il existe une fonction de transformation de projection, mais encore une fois, elle remplacera la source

données et ne pas les transformer dans la couche uniquement. Cette transformation serait-elle mieux effectuée au niveau du service Web de publication ? je

voir beaucoup de discussions sur la mise en cache des services Web, mais pas sur ces types de transformation dans le service Web lui-même

(J'espère que j'ai raté quelque chose ici ?)

Je suis sûr que cela a été résolu ailleurs dans les grands magasins SIG, des pensées?


Créer un nouveau document cartographique (*.mxd) à l'aide d'ArcPy

par ChrisFox

Si ce MXD vierge faisait partie de l'installation d'ArcGIS, je le considérerais comme une solution, mais si vous voulez dire que la post-installation doit s'assurer qu'il est disponible sur chaque machine sur laquelle mon code est exécuté, c'est pour moi une solution de contournement.

C'est dommage que le code ci-dessous ne fonctionne pas - peut-être que arcpy.mapping.MapDocument() peut être amélioré pour permettre l'ouverture de Normal.mxt ?

mxd = arcpy.mapping.MapDocument(r"C:UsersGraemeAppDataRoamingESRIDesktop10.1ArcMapTemplatesNormal.mxt")
mxd.saveACopy(r"C: emp est.mxd")

par ChrisFox

Dans les versions 10.0 et 10.1, vous trouverez de nombreux MXD disponibles avec l'installation à l'adresse :

<Installation d'ArcGIS Desktop>MapTemplates

Cela vous donne toutes sortes de MXD avec différentes tailles et orientations de mise en page. De plus, selon la façon dont vous partagez votre code, si vous créez un complément python, il est possible de packager des données comprenant un MXD vierge avec votre complément :

Ces deux recommandations devraient fournir de bonnes solutions de contournement (même une solution virtuelle).

Cependant, cela ne fera probablement que déplacer le point de blocage pour moi : pourquoi de nouveaux éléments de mise en page et d'autres objets tels que des grilles et des graticules ne peuvent-ils pas être créés à l'aide d'ArcPy ?

par ChrisFox

Cloner du texte et des éléments graphiques pour que les propriétés puissent être modifiées est certainement une aide, alors merci de me les rappeler.

Le plus important pour moi est de ne pas pouvoir modifier les intervalles sur les graticules existants à l'aide d'ArcPy - j'espère que l'idée ArcGIS liée à cela continuera d'attirer des votes.

importer arcpy
sous-processus d'importation
importer le système

def install (paquet):
subprocess.call([sys.executable, "-m", "pip", "install", package])

def CreateMXD(chemin):
GetModule('esriCarto.olb')
importer comtypes.gen.esriCarto en tant que esriCarto
pMapDocument = CreateObject(esriCarto.MapDocument, esriCarto.IMapDocument)
pMapDocument.New(chemin)
pMapDocument.Save() #probablement pas requis.

def GetLibPath() :
""" Obtenir le chemin de la bibliothèque ArcObjects

Ce serait bien de simplement charger le module directement au lieu d'avoir besoin du chemin,
ils sont enregistrés après tout. Mais je ne connais pas assez COM pour faire ça


Échelle de la carte et recherche spatiale

Les jeux de données ne peuvent s'afficher correctement qu'à certains niveaux d'échelle et deviennent inutiles lorsque vous visualisez des cartes à très grande ou à petite échelle. La recherche spatiale est liée à l'étendue actuelle de la carte et, par conséquent, l'échelle de la carte devient un facteur important pour renvoyer des résultats de recherche pertinents en fonction de l'étendue visible actuelle. Par exemple, lorsque vous travaillez avec une carte à l'échelle mondiale, les données pertinentes pour les petites villes et les quartiers deviennent inutiles, et vous ne voudrez peut-être pas les voir dans les résultats de la recherche. Par défaut, le filtre spatial basé sur l'échelle est désactivé. Vous pouvez l'activer à l'aide du menu déroulant du bouton Options de recherche, comme indiqué ci-dessous :

Les échelles de la carte ne sont pas dérivées intrinsèquement. Vous devez saisir les niveaux pertinents pour vos ensembles de données dans le cadre de la documentation de la description de votre article. Sans ces informations, vous risquez de ne pas obtenir les résultats appropriés lorsque vous activez cette option. Voir Documentation des éléments dans la fenêtre Catalogue pour plus d'informations.


Carte des pannes publiques

La solution de cartographie des pannes publiques permet à un service public d'informer les clients sur l'état du système électrique par région. Cette carte comprend différentes régions géographiques pour afficher des résumés des clients en service et hors service, ainsi qu'un pourcentage de clients hors service. Vous pouvez éventuellement afficher les emplacements des événements de panne.

Les informations sur les pannes sont créées via une série de modèles de géotraitement. Les résultats sont ensuite partagés avec une organisation ArcGIS pour fournir au public une carte évolutive capable de gérer des demandes importantes en cas de panne importante.

Conditions

La panne publique nécessite une expérience technique et un logiciel spécifiques.

Création de cartes
  • ArcMap (Standard ou Avancé) 10.2.1, 10.5 - 10.8
  • ArcGIS en ligne
  • ArcGIS Entreprise 10.5 - 10.8
Hébergement du service de carte
Hébergement d'applications
  • ArcGIS en ligne
  • ArcGIS Entreprise 10.5 - 10.8
  • Visualiseur de base (modèle d'application Web configurable ArcGIS)

Ce que vous obtenez

Lorsque vous téléchargez la carte des pannes publiques, vous trouverez les éléments suivants dans le fichier zip :


Voir la vidéo: MXD Doctor Pour ouvrir les MXD sauvgardées par des versions ArcMAP récente