Suite

Je veux reclasser un raster dans un dossier, le renommer et le mettre dans un nouveau dossier à l'aide de Python

Je veux reclasser un raster dans un dossier, le renommer et le mettre dans un nouveau dossier à l'aide de Python


J'ai passé au peigne fin ce site et je n'arrive pas à le comprendre. J'ai un raster "slope_tif_18TXK030910", je veux le reclasser, le renommer et le mettre dans un nouveau dossier. c'est ce que j'ai et ça marche bien MAIS il sort juste nommé "reclass_" au lieu de "reclass_slope_tif_18TXK030910"

# Importer les modules système import arcpy depuis arcpy import env import os depuis arcpy.sa import * # Consultez la licence d'extension ArcGIS Spatial Analyst arcpy.CheckOutExtension("Spatial") inputFolder = r'E:BLSK_HSIpractice_fish' env.workspace = inputFolder outputFolder = r'E:BLSK_HSIpracticeLC' inRaster = r'E:BLSK_HSIpractice_fishslope_tif_18TXK030910.img' reclassField = "VALUE" remap = RemapValue([[-1, 20, 1], [21, 90 , 2]]) outReclassify = Reclassify(inRaster, reclassField, remap, "NODATA") outname = os.path.join(outputFolder, "reclass_"+".img") outReclassify.save(outname)

Il semble que vous deviez extraire le nom du fichier de "inRaster" et l'ajouter dans votre variable "outname". J'ai copié votre dernier bloc de code et ajouté des commentaires aux lignes que j'ai ajoutées/éditées. Si le reste de votre code fonctionne comme vous l'indiquez, cela devrait prendre soin de corriger le nom et de l'écrire où vous le souhaitez.

inRaster = r'E:BLSK_HSIpractice_fishslope_tif_18TXK030910.img' basename = os.path.basename(inRaster) # extraire tout après le dernier répertoire reclassField = "VALUE" remap = RemapValue([[-1, 20, 1 ], [21, 90, 2]]) outReclassify = Reclassify(inRaster, reclassField, remap, "NODATA") outname = os.path.join(outputFolder, "reclass_"+basename) # basename conserve les extensions outReclassify.save(outname )

Résultats de recherche

Ajoutez des vidéos intégrées, des podcasts, des sondages, des quiz et recevez des informations de suivi pour des communications inspirantes

La combinaison parfaite d'une formation en ligne et d'un puissant logiciel d'examen.

LIBPNG : bibliothèque de référence PNG

GraphiquesMagick

Couteau suisse du traitement d'images

Image libre

MathGL

Une bibliothèque pour la visualisation de données scientifiques

User.com est un logiciel d'automatisation du marketing complet pour tous vos messages et relations avec les clients.

SIG SAGA

Pstoedit

convertit les fichiers PostScript ou PDF en d'autres formats de graphiques vectoriels

GeoTools, la boîte à outils Java SIG

Boîte à outils pour travailler avec et cartographier des données géospatiales

Outils de chemin Ofnuts' Gimp

Lynkeos

Lynkeos est un logiciel de traitement d'images de webcam astronomique pour OS X.

BugHerd est conçu et construit par des développeurs Web pour des développeurs, des concepteurs, des spécialistes du marketing et des chefs de projet.


Matériaux

Partie pertinente Nom des données La description
Partie01 chasse_dem DEM pour Chase County, KS (taille de cellule de 30 m, élévation en pieds)
Partie02 Pour_point Une couche d'entités ponctuelles qui représente l'embouchure en aval de la rivière Little où vous allez créer un hydrogramme unitaire.
Partie02 Stowe_boundary Couche d'entités surfaciques qui représente les limites de Stowe, Vermont. Cette couche a été dérivée des données disponibles du [Vermont Center for Geographic Information (VCGI)](https://vcgi.vermont.gov/)
Partie02 Stowe_DEM Couche raster qui représente l'altitude dans la zone d'étude. Il a également une résolution de 30 mètres. Il a été dérivé des données mises à disposition par le [United States Geological Survey (USGS)] (https://www.usgs.gov/).
Part02_worked Dossier hydrologique de Stowe Une version travaillée de la partie 2 en considération de la puissance de traitement

  • Choisissez une zone plus petite à traiter.
  • Vous pouvez sauter l'étape si vous faites attention, comme indiqué dans les instructions.
  • Si vous suspendez le dessin, cela peut accélérer les interactions avec l'interface utilisateur
  • Lorsque vous ne manipulez pas activement les outils, vous pouvez effectuer plusieurs tâches. Prenez le temps de comprendre le flux de travail, lancez un processus et passez à autre chose. Essayez de ne pas faire fonctionner quoi que ce soit de super intensif en même temps, mais le travail léger de Microsoft Office ne devrait pas vous briser.
  • Comme pis-aller si cela prend trop de temps, je vous ai fourni une copie de ma partie 2 pour que vous puissiez la consulter. Utilisez-le uniquement si nécessaire. .

Lisser les faces réduites

Jackson P. Spradley, James D. Pampush, Paul E. Morse, Richard F. Kay (2017). Opérateur de lissage : Les effets de différents protocoles de retriangulation de maillage 3D sur le calcul de l'énergie normale de Dirichlet. Ainsi, nous allons lisser le maillage obtenu à partir d'une étape ci-dessus.

Laplacien Lisse
Étapes de lissage 3
Lissage des limites 1D : VRAI
Pondération cotangente : VRAI
N'affecte que les faces sélectionnées : FALSE

Si le fichier mxl est dans un emplacement différent, le PLYFolder

Pour obtenir cette liste d'informations et quelques exemples

Allez à l'invite de commande, tapez 'cd C:Program FilesVCG'
Dans mon cas, meshlab est installé dans ce dossier et cd changera de répertoire et ira dans le dossier meshlab
Tapez ensuite meshlabserver.exe et entrez et vous obtiendrez toutes ces informations

Permet de collecter les noms de tous les fichiers de pli

IL NE DOIT PAS Y AVOIR D'ESPACE DANS LE NOM DU FICHIER
SUPPRIMER L'ESPACE AVEC _ par exemple, "KNM ER 61442_Metand_fp_edit.ply" avec "KNM_ER_61442_Metand_fp_edit.ply"

Créez un fichier chauve-souris vide et remplissez-le d'informations à l'aide de la boucle

Cela ajoutera une ligne pour mettre le chemin du serveur meshlab, s'il n'est pas encore inclus dans les variables d'environnement Ou vous pouvez également faire Aller à

"Système" -> "Paramètres système avancés" -> "Variables d'environnement" -> Dans "Variables système", faites défiler jusqu'à la variable PATH et cliquez sur modifier -> Dans "Valeur de variable", placez "C: Fichiers"

Par exemple

meshlabserver.exe -i KNMER61442_Metandm3_edit.ply -o KNMER61442_Metandm3_edit_smooth.ply -s LaplacianSmooth.mlx


Comment ne conserver que les fichiers tif géoréférencés d'un dossier contenant 10 000 fichiers tif ?

a obtenu un gâchis d'environ 10 000 fichiers tif dans un dossier où environ 3 500 d'entre eux semblent être géoréférencés correctement.

à la recherche d'un moyen de sélectionner et de supprimer tous ceux (environ 6500 d'entre eux) qui ne sont pas géoréférencés correctement (et leurs fichiers .ovr, .rrd, .aux, etc. correspondants)

dans ArcCatalog 10.5, QGIS ou d'autres méthodes.

Comment sauriez-vous lesquels sont corrects et lesquels ne le sont pas ? S'ils contiennent tous des informations de géoréférence, vous pouvez les lire et les convertir en géographiques et voir si cela a du sens avec les valeurs attendues. J'utiliserais python pour le faire.

Ou placez-les dans une vue cartographique et écrivez un script pour permettre une sélection graphique sur les mauvais et générer une liste simple.

J'ai fait une mosaïque raster et supprimé la plupart des mauvais à l'aide de la table attributaire d'empreinte de polygone et sélectionné (requête de définition) par ID d'objet. Cela ne laisse qu'une mosaïque raster avec de nombreux chevauchements. Avoir les tifs propres individuels est ce que demande un client. J'ai expérimenté avec certaines invites Windows cmd DOS pour sélectionner par listes et fichiers txt, mais cela semblait aggraver beaucoup le disque dur.

écrire un script pour permettre une sélection graphique sur les mauvais et générer une liste simple.

pourriez-vous s'il vous plaît développer un peu?

j'ai une liste de fichiers txt des probables 3500 bons.

Une façon de le faire est d'utiliser un fichier batch. Je le fais tout le temps pour supprimer, renommer ou déplacer de grands groupes de fichiers. Si vous en avez un dir > list.txt. Ou juste une liste de fichiers texte, c'est assez facile. J'avais l'habitude d'avoir une vidéo "how to" pour mon équipe. Je l'ai peut-être à la maison. Si légèrement intéressé par cet itinéraire, je regarderai. Mais l'essentiel est d'obtenir une liste de fichiers texte de tous les fichiers que vous souhaitez supprimer. Ensuite, pour chacun, ayez une ligne distincte à supprimer. C'est assez rapide à faire dans Excel.

Ou si vous avez la liste de la première partie du nom de fichier, vous pouvez utiliser del file1*.* qui les supprimera tous.


3 réponses 3

Pour répondre à votre question : les modèles de branche sont la voie à suivre, ici. Cependant, les modèles de branche, à eux seuls, ne vous donneront pas tout ce dont vous avez besoin. J'ai en fait écrit une règle pour fournir cette fonctionnalité de "préréglage de branche", et elle est actuellement utilisée sur un site de production.

Préréglages de branche

Le terme préréglages de branche fait référence à la création d'un modèle de branche dans le but de stocker une configuration de présentation réutilisable, avec des sources de données qui peuvent ou non vivre dans la branche elle-même.

Ce que Sitecore fournit et ne fournit pas

Sitecore prend uniquement en charge l'utilisation de modèles de branche pour créer la hiérarchie des éléments. Cela signifie que vous pouvez utiliser uniquement les outils OOTB de Sitecore pour créer vos éléments de source de données. Cependant, Sitecore ne « relie » pas vos sources de données pour vous. Qu'est-ce que ça veut dire? Considérez l'exemple suivant :

Dans cet exemple, si nous n'avons que la fonctionnalité OOTB, lorsque nous ajoutons une instance de ce modèle de branche, nous obtiendrons le résultat suivant :

Notez que le problème ici est que le rendu News Detail pointe toujours vers le composant News Details dans la définition Branch, pas l'instance de la branche. En tant que tel, nous devons écrire notre propre logique pour relier toutes les sources de données qui vivent dans la branche elle-même.

Relier les sources de données

Comme auparavant, pour que nos préréglages de branche fonctionnent, nous devons écrire une logique pour "relier" les sources de données pour tous les rendus sur les éléments de la branche qui pointent vers d'autres éléments de la même branche. Ces sources de données doivent être reliées pour pointer vers les éléments de la instance de branche qui correspondent aux éléments de la source de données dans le définition de branche.

Déclencher notre logique personnalisée

Le déclenchement de notre logique personnalisée n'est pas aussi simple qu'on pourrait le penser. Malheureusement, l'événement item:added est techniquement obsolète et l'événement item:created est déclenché avant que le "master" de create item (la référence à son modèle de branche) n'ait été défini. Nous ne voulons pas non plus polluer nos événements item:saved et item:saving, car ils peuvent avoir un impact important sur les performances. Heureusement, cependant, les nouveaux pipelines de fournisseurs d'éléments de Sitecore nous offrent un excellent mécanisme pour déclencher notre logique : le pipeline <addFromTemplate>.

Le pipeline <addFromTemplate> diffère du pipeline <uiAddFromTemplate> en ce que le pipeline <addFromTemplate> est appelé chaque fois qu'un élément est créé, qu'il soit ou non créé dans l'interface utilisateur ou d'où provient l'interface utilisateur.

Notez que le pipeline <addFromTemplate> ne s'exécute qu'une seule fois lors de l'ajout d'un élément à partir d'un modèle de branche plutôt que de s'exécuter une fois pour chaque élément de la branche. En tant que tel, nous voudrons revenir sur les sous-éléments de notre "item" (racine d'instance de branche) en cours d'ajout et relier les sources de données pour chacun.

Exécuter notre logique

Nous savons donc maintenant où, quoi et pourquoi, mais nous devons maintenant comprendre "comment". Quiconque me connaît saura ce que je m'apprête à suggérer : le moteur de règles !

Le moteur de règles est un mécanisme génial qui fournit non seulement une solution hautement extensible et flexible, mais également une solution facile à implémenter et à ajouter. Argumentaire de vente, terminé - voici ce que vous voulez faire :

Vous allez d'abord vouloir écrire quelques conditions pour vérifier si l'élément a été créé à partir d'un modèle de branche. Etre sur ne pas pour ajouter des conditions pour appeler uniquement votre logique dans la section de contenu de l'arborescence. Si vous le faites, vous ne pourrez pas prendre en charge les modèles de branche qui incluent des instances d'autres modèles de branche.

La prochaine chose que vous voudrez faire est d'écrire une action pour relier les sources de données de branche pour l'élément et ses descendants. Vous pouvez utiliser la comparaison de chaînes sur les chemins relatifs du racine de l'instance de source de données aux chemins relatifs de la racine de définition de source de données pour savoir quel élément est lié à quoi. Le seul inconvénient est que cela ne prend pas en charge les éléments avec des noms en double (ce que vous devriez vraiment essayer d'éviter, de toute façon).

Assez bavardé ! Codez !

La divulgation complète, tout le code ci-dessous fonctionnera, mais il s'agit d'une fonctionnalité assez complexe et je ne peux pas mettre l'intégralité du CSPROJ dans cette solution. En tant que tel, je mets en évidence les parties importantes et vous fournit un lien vers un référentiel de travail qui inclut cette règle. Le référentiel comprend également un projet TDS qui contient tous les éléments nécessaires à l'exécution de la solution. J'ai récemment testé cela dans une solution 8.1u2.

Configuration : Appeler le déclencheur

Déclencheur : processeur AddFromTemplate

Notez que je route toutes mes règles via une classe RuleManager pour centraliser la logique de journalisation/gestion des erreurs. (Crédit à Matt Gramolini et Juozas "Jimbo" Baltika pour leurs contributions à cette structure et au code).


Modèle de tâche

L'étape suivante de la conception d'une tâche personnalisée consiste à créer un modèle de tâche, qui est un fichier texte au format JSON. Il est utilisé pour mapper des mots-clés dans le programme de traitement de données IDL & 160 aux paramètres de la tâche. Vous pouvez créer un modèle de tâche à l'aide d'IDL ou de n'importe quel éditeur de texte. Nommez le fichier avec une extension .task.

Pour ce tutoriel, vous pouvez utiliser le fichier sentinelvegindices.task , qui a déjà été créé pour vous. Copiez ce programme dans le dossier custom_code du chemin d'installation d'ENVI. Les chemins par défaut sont les suivants :

Les fenêtres

Depuis C:Program FilesHarrisENVIxxexamples askssentineexample

Vers C:Program FilesHarrisENVIxxcode personnalisé

Linux

Depuis /usr/local/harris/envixx/exemples/tâches/sentineexample

Vers /usr/local/harris/envixx/code personnalisé

Le but d'un modèle de tâche est de mapper des mots-clés dans le programme de traitement de données IDL  aux paramètres de tâche. Nous en discuterons plus en détail plus loin dans Comment les fichiers fonctionnent ensemble.

La valeur de routine dans le modèle de tâche doit faire référence au nom du programme de traitement de données IDL (sans l'extension de fichier .pro). Dans cet exemple, le programme informatique est sentinelvegindices.pro :

Notez la clé de révision dans le modèle de tâche. Le numéro de révision permet aux développeurs de tâches personnalisées de suivre les modifications apportées à une tâche au fil du temps. Le numéro de révision est représenté par versionnage sémantique, qui utilise une convention de X.Y.Z, où :

  • X représente la version principale. Une valeur incrémentée indique que les ajouts et les mises à jour de tâches ne sont pas rétrocompatibles.
  • Y représente la version mineure. Une valeur incrémentée indique que les ajouts et les mises à jour de tâches sont rétrocompatibles.
  • Z représente le numéro de patch. Une valeur incrémentée indique des corrections de bogues qui n'affectent pas la tâche.

Dans cet exemple, le numéro de révision est 1.0.0 pour la tâche personnalisée. Disons par exemple que vous mettez à jour une description de paramètre dans une future version. Vous incrémenteriez le numéro de révision à 1.0.1. Dans la prochaine version, vous ajoutez de nouveaux paramètres à la tâche. Le numéro de révision passera à 1.1. Peut-être que dans une future version, vous décidez de réécrire complètement la tâche et de supprimer tous les paramètres d'entrée à l'exception de INPUT_RASTER. Il s'agit d'un changement radical (la tâche n'est pas rétrocompatible) et la révision est mise à jour vers 2.0. En regardant le numéro de révision, les utilisateurs peuvent rapidement évaluer les problèmes de compatibilité avec les versions antérieures de la tâche.


Voici une solution courante pour cela :

  1. Créez un sous-répertoire à un endroit pratique, de préférence sur le même volume.
  2. Déplacez votre .zshrc et tout autre fichier .* que vous souhaitez suivre dans git dans ce répertoire. Vous voudrez peut-être les renommer pour les rendre visibles pour les commandes normales ou pour éviter les conflits de noms.
  3. Créez des liens symboliques à partir des fichiers du nouveau git-dir dans votre répertoire personnel.
  4. Gérez le référentiel git dans son emplacement spécifique.

Vous ne pouvez pas le faire sortir

mais vous pouvez exclure assez facilement tous les autres fichiers en ajoutant un fichier .gitignore, avec le contenu :

qui ignore tout ( * ) sauf .zshrc .

Une façon de le faire est d'utiliser un référentiel git nu dans un dossier que vous faites ne pas appelez .git , mais par exemple .git-dotfiles , et utilisez git --git-dir=

lorsque vous interagissez avec les dotfiles que vous suivez dans votre répertoire personnel. Pour rendre cela plus facile, vous définiriez un alias pour cela. L'utilisation pourrait alors ressembler à : git-dotfiles add .zshrc par exemple.

Parce que git normalement (sans indicateur --git-dir) ne recherche qu'un répertoire (ou fichier) .git, il ne trouvera pas votre répertoire .git-dotfiles à moins que vous ne le pointiez dessus.


Les plus gros cadeaux WordPress se trouvent entre les balises <head> </head>.

Exemple de contenu de tête WordPress généré par The Twentyten Theme et comment le supprimer :

Supprimer directement de header.php

Cachez WordPress en appelant votre feuille de style depuis un autre emplacement et changez le répertoire wp-content. WordPress exige que votre thème inclue des informations de base en haut de style.css (style.css doit se trouver dans le répertoire racine des thèmes). Vous devrez créer un CSS alternatif et l'appeler de votre tête. WordPress n'exige pas que vous utilisiez le style.css des thèmes, il exige seulement qu'il se trouve dans le répertoire des thèmes.

Supprimer directement de header.php

Pour supprimer ces liens supplémentaires, vous pouvez ajouter un filtre à functions.php

Vous pouvez modifier votre répertoire de plugins et votre répertoire wp-content dans votre fichier wp-config.php mais vous pourriez avoir des problèmes si votre thème ou des plugins n'utilisent pas la bonne méthode pour appeler des fichiers.

Définissez WP_CONTENT_URL sur l'URI complet de ce répertoire (pas de barre oblique de fin), par ex.

Facultatif Définissez WP_PLUGIN_DIR sur le chemin local complet de ce répertoire (pas de barre oblique de fin), par ex.

Définissez WP_PLUGIN_URL sur l'URI complet de ce répertoire (pas de barre oblique de fin), par ex.

Sachez que certains plugins comme Akismat, All in One SEO, W3-Total-Cache, Super Cache et bien d'autres ajoutent des commentaires à la sortie HTML. La plupart sont faciles à modifier pour supprimer les commentaires, mais vos modifications seront écrasées à chaque fois que les plugins seront mis à jour.

Le répertoire wp-includes contient jquery et divers autres fichiers js que les thèmes ou les plugins appelleront à l'aide de wp_enqueue_script(). Pour changer cela, vous devrez annuler l'enregistrement des scripts WordPress par défaut et enregistrer le nouvel emplacement. Ajouter à functions.php :

Cela devra être fait avec chaque script utilisé par votre thème ou vos plugins.


Mec, ça m'a pris un temps embarrassant pour comprendre, alors ne te sens pas mal.

Mais si vous accédez aux paramètres de la bibliothèque de votre wiki d'entreprise et ouvrez les paramètres du champ des catégories, vous remarquerez que vous devez réellement lui attribuer un ensemble de termes de métadonnées gérées avant que les utilisateurs ne puissent y entrer des éléments.

Quelques consignes :
Mon environnement est actuellement en transition vers 2013, donc les captures d'écran sont en mode 2010. Cela ne devrait pas être un problème, la plupart des choses sont plus ou moins au même endroit.

  1. Accédez aux paramètres de la bibliothèque sur votre bibliothèque wiki d'entreprise :
  2. Nous devons modifier la colonne. Vous pouvez le faire directement sur la bibliothèque (regardez sous Colonnes) ou vous pouvez le faire sur le type de contenu. Je préfère travailler sur le type de contenu. Ainsi, sous Types de contenu, sélectionnez Page Wiki d'entreprise :
  3. Ensuite, cliquez sur Catégories Wiki :
  4. Cliquez ensuite sur le lien "Modifier la colonne" à côté du nom de la colonne :
  5. Sur la page Paramètres de colonne, à peu près à mi-chemin, vous trouverez Paramètres d'ensemble de termes (pas de capture d'écran, désolé, trop d'informations d'identification ici). C'est ici que vous affectez un ensemble de termes. Vous devriez voir un service de métadonnées que vous pouvez explorer.

Bien entendu, tout cela suppose que votre entreprise a mis en place un service de métadonnées gérées. Si vous ne l'avez pas fait et que vous n'êtes pas l'administrateur de la ferme, vous devrez contacter un responsable pour que cela se produise.