Suite

Comment supprimer une valeur unique spécifique avec arcpy


en utilisant arcpy, je voudrais supprimer, de 50 fichiers mxd, une valeur unique spécifique appelée "résidence a" (existe en 3 couches) de la table des matières.

donc j'aurai ce résultat :

La valeur de « résidence a » est « 70 » dans la table attributaire (dans le champ nommé « YEUD »)

Quand j'utilise ce code :

importer arcpy,os,sys depuis arcpy import env env.workspace = r"C:Project" pour mxdname dans arcpy.ListFiles("*.mxd") : mxd = arcpy.mapping.MapDocument(r"C:Project " + mxdname) df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] lyr = arcpy.mapping.ListLayers(mxd, "*")[0] if lyr.symbologyType == "UNIQUE_VALUES": vals = lyr.symbology.classLabels pour v dans vals : if v == "residence a": print mxdname print lyr.name print ("1 in layer " + lyr.name) arcpy.mapping.RemoveLayer(df, v) mxd. save() del mxd

j'obtiens une erreur :

>>> Projet -.mxd mig1 1 dans la couche mig1 Traceback (appel le plus récent en dernier) : Fichier "C:/Users/yaron.KAYAMOT/Desktop/remove UNIQUE_VALUES in lyr.py", ligne 18, dans  arcpy.mapping.RemoveLayer(df, v) Fichier "C:Program Files (x86)ArcGISDesktop10.3ArcPyarcpyutils.py", ligne 182, dans fn_ return fn(*args, **kw ) Fichier "C:Program Files (x86)ArcGISDesktop10.3ArcPyarcpymapping.py", ligne 1845, dans RemoveLayer assert isinstance(remove_layer, Layer) AssertionError >>>

Pour la divulgation, j'ai posé cette question dans https://geonet.esri.com/thread/158715


Malheureusement, avec arcpy, cette méthode (removeUniqueValue()) n'existe pas sous la classe UniqueValuesSymbology.

Une alternative dans arcpy serait:

  1. Supprimez manuellement la valeur dans chaque couche unique et enregistrez un fichier de couche pour chaque couche unique

  2. Parcourez chaque mxd et parcourez chaque liste de couches pour rechercher les couches qui doivent être mises à jour (en utilisant la boucle for et la logique conditionnelle if). Une fois que vous avez trouvé une couche qui doit être mise à jour, utilisez la fonction UpdateLayer pour appliquer le fichier de couche nécessaire à la couche qui doit être mise à jour, puis actualisez la table des matières et enregistrez la carte.


6 stratégies pour créer de la valeur pour vos clients

Il ne suffit pas de produire un produit parfait et d'en fixer un prix raisonnable. Les clients ont beaucoup, beaucoup d'excellentes options et c'est pourquoi ils recherchent une valeur supplémentaire lorsqu'ils font leur choix. Ils veulent se sentir appréciés en communiquant avec une marque, ils recherchent une expérience précieuse, et veulent s'appuyer sur de vrais experts, ceux qui les comprennent et les écoutent.

Offrir de la valeur aux clients nécessite une attention aux petits détails en plus d'avoir un produit qui tue. Dans cet article, nous allons révéler comment créer de la valeur pour les clients avec des activités marketing et un contenu pertinent.

Contenu

5 réponses 5

C'est probablement le moyen le plus efficace de faire ce que vous voulez, sans utiliser d'expressions régulières :

J'aimerais aborder une nouvelle réponse basée sur les expressions régulières qui gagne en popularité.

La solution peut sembler plus mignonne à première vue, mais elle est fausse pour plusieurs raisons.

L'expression régulière ci-dessus correspondrait à une requête uri de /enjoy , la redirigeant vers /joy en amont. Est-ce vraiment voulu ?

Une demande de /en n'entraînera aucune redirection, servant directement un / depuis l'amont (presque comme si une demande de /en/ avait été faite à la place, mais pas tout à fait). Si vous utilisez des URI relatifs dans votre page racine en amont (sinon, pourquoi n'auriez-vous pas le préfixe /en/ juste là dans les URI en amont ?), par ex. src="https://serverfault.com/questions/562756/style.css" (qui peut faire référence à une URL spécifique à la langue("menu.png") , par exemple), alors le navigateur demandera cela en tant que /style. css au lieu de /en/style.css . (Ou même si vous utilisez des URI absolus partout, que se passe-t-il si quelqu'un référence relativement une ressource semi-optionnelle obscure ?) Oups, tout à coup, le site peut ne pas fonctionner, mais seulement parfois ou dans des cas extrêmes.

Selon mes conseils précédents à une autre question déjà mentionnée par la propre réponse de l'OP, l'utilisation d'expressions régulières empêche la directive proxy_redirect d'avoir la valeur par défaut de default , en la désactivant à la place. Cela signifie que si l'amont répond avec Location : http://127.0.0.1:8080/en/dir/ lorsqu'une demande de /en/dir est faite, alors c'est ce que le client verra, ce qui ne fonctionnera évidemment pas correctement . (Ce qui aurait été particulièrement ironique pour une requête /en qui incite l'utilisation de regex en premier lieu, mais cette implémentation spécifique souffre à la place d'un autre problème comme déjà mentionné ci-dessus.) De plus, si vous utilisez déjà la directive en amont, alors elle peut devenir encore plus moche si vous essayez simplement d'en utiliser un personnalisé, surtout si vous pouvez avoir plus d'un serveur en amont & mdash comment avez-vous un proxy_redirect séparé pour chacun d'entre eux ? Vous pouvez également utiliser des expressions régulières dans proxy_redirect , peut-être même pour correspondre à n'importe quel hôte, mais que se passe-t-il si vous décidez de donner une redirection interdomaine à l'avenir ?

Pour essayer de résoudre certains des points ci-dessus avec un seul emplacement basé sur regex, nous pourrions procéder comme suit (notez que dans proxy_pass, nous avons également dû supprimer la référence à un serveur à partir d'une directive basée en amont, pour rendre proxy_redirect plus simple) :

Donc, si vous me demandez, la solution d'origine avec les deux emplacements de niveau supérieur pour frères et sœurs serait toujours une meilleure idée que de vous creuser dans un terrier de lapin en empruntant plutôt la route regex.


Créer un espace privé

Bien que les cabines puissent sembler contraignantes, elles peuvent faire une grande différence dans la réduction du bruit et des distractions. Même des murs courts de 2 pieds autour de chaque bureau peuvent aider vos agents à se concentrer. Sans oublier que la division de l'espace de bureau permet aux agents d'avoir leur propre espace personnel et d'éviter de se disputer avec leurs voisins à propos d'une table en désordre.

Êtes-vous aux prises avec l'un de ces problèmes courants de centre d'appels ? Partagez avec nous comment vous avez abordé le problème et l'avez résolu dans la zone de commentaires ci-dessous !


Voir la vidéo: ArcGis How to remove Nodata from Landsat using Raster Calculator (Octobre 2021).