Suite

Impossible de mettre un nom de couche identique au nom de raster qui vient d'être créé par le script Python


J'ai une question concernant le script Python pour créer un outil de carte thermique.

Je crée un outil de carte thermique où les utilisateurs peuvent définir l'étendue de la carte, l'outil lira l'échelle actuelle de la carte, puis créera une couche de carte thermique raster en utilisant la taille de cellule appropriée et le rayon de recherche dépend de l'échelle de la carte et du nouveau raster apparaîtra sur la table des matières de la carte. J'ai réussi cette partie. Mais j'ai également mis une fonction permettant aux utilisateurs de définir le nom du raster, et le nom apparaîtra également en tant que nom de couche.

Le script est le ci-dessous.

# Arguments de script heatMapTest2 = Output_Raster_Layer heatMapTest2Name = 'Output Raster' templist = heatMapTest2.split("") layername = templist[-1] MXD = arcpy.mapping.MapDocument("CURRENT") dataFrame = arcpy.mapping.ListDataFrames( MXD)[0] mapExtent = dataFrame.extent scale = dataFrame.scale Input_Layer_2 = Input_Layer #Ajouter un nouveau calque au dataframe result = arcpy.MakeRasterLayer_management(heatMapTest2, layername) lyrLayer = result.getOutput(0) arcpy.mapping.AddLayer(dataFrame) , lyrLayer, "AUTO_ARRANGE")

Cette fonction fonctionne si j'utilise ArcGIS à partir de la télécommande et que l'environnement de travail est le même serveur que la télécommande. Mais j'ai défini l'environnement de travail sur un serveur différent, cela me donne un message d'erreur comme ci-dessous.

Traceback (appel le plus récent en dernier) : Fichier "Q:GIS_ToolsHeatMapToolPythonHeatMapTool_Incidents_Add_Reclass_para5_short.py", ligne 149, dans  result = arcpy.MakeRasterLayer_management(heatMapTest2, layername) File "c:program files (x86)arcgisdesktop10.2arcpyarcpymanagement.py", line 6479, in MakeRasterLayer raise e ExecuteError: ERROR 000582: Une erreur s'est produite pendant l'exécution. Échec de l'exécution (HeatMapAllWithOutputLayerPara).

Y a-t-il quelqu'un qui peut dire pourquoi cela s'est produit?


Je suppose que les paramètres ne sont que relatifs à l'endroit où le fichier .py existe. Peut-être pourriez-vous obtenir les paramètres d'entrée à partir d'un formulaire d'outil de script ?


Tout fichier de signature créé par les outils Créer une signature , Modifier la signature ou Iso Cluster est une entrée valide pour le fichier de signature d'entrée. Ceux-ci auront une extension .gsg.

Cet outil utilise des statistiques bayésiennes pour estimer les probabilités de classe. Les statistiques bayésiennes impliquent de commencer par des informations préalables sur les données, puis de mettre à jour ces informations une fois les données collectées. Les informations a priori sur les valeurs de données sont quantifiées avec des probabilités a priori, qui sont ensuite ajustées par la fonction de vraisemblance pour recevoir des probabilités a posteriori (les informations mises à jour). La fonction de vraisemblance est définie par les valeurs de données pour chaque classe/grappe.

Le fichier de probabilité a priori d'entrée doit être un fichier ASCII composé de deux colonnes. Les valeurs de la colonne de gauche représentent les ID de classe. Les valeurs de la colonne de droite représentent les probabilités a priori pour les classes respectives. Les valeurs valides pour les probabilités a priori de classe doivent être supérieures ou égales à zéro. Si zéro est spécifié comme probabilité, aucune bande de probabilité associée ne sera créée pour la classe dans le raster multicanal en sortie. La somme des probabilités a priori spécifiées doit être inférieure ou égale à un. Un exemple montrant le format du fichier comme suit :

Les classes omises dans le fichier recevront la probabilité moyenne a priori de la partie restante de la valeur de un. Dans l'exemple ci-dessus, toutes les classes de 1 à 8 sont représentées dans le fichier de signature. Les probabilités a priori des classes 3 et 6 sont manquantes dans le fichier de probabilités a priori d'entrée. Puisque la somme de toutes les probabilités spécifiées dans le fichier ci-dessus est égale à 0,8, la portion restante de la probabilité (0,2) est divisée par le nombre de classes non spécifiées (2). Par conséquent, les classes 3 et 6 se verront chacune attribuer une probabilité de 0,1.

L'extension du fichier de probabilité a priori d'entrée peut être .txt ou .asc .

La valeur entrée pour la valeur de sortie maximale définit la plage supérieure des valeurs dans les bandes de probabilité de sortie. La valeur par défaut de 100 crée un raster multicanal avec chaque canal contenant des valeurs entières comprises entre 0 et 100. Toute valeur entière supérieure à zéro est valide pour la valeur de sortie maximale. Seule la valeur de un pour l'argument de valeur de sortie maximale entraînera des bandes ayant des valeurs à virgule flottante.

Si l'entrée est une couche créée à partir d'un raster multicanal avec plus de trois canaux, l'opération prendra en compte tous les canaux associés au jeu de données source, et pas seulement les trois canaux chargés (symbolisés) par la couche.

Il existe plusieurs façons de spécifier un sous-ensemble de canaux d'un raster multicanal à utiliser comme entrée dans l'outil.

  • Si vous utilisez la boîte de dialogue de l'outil, naviguez jusqu'au raster multicanal à l'aide du bouton Parcourir en regard de Canaux raster en entrée , ouvrez le raster et sélectionnez les canaux souhaités.
  • Si le raster multicanal est un calque de la table des matières , vous pouvez utiliser l'outil Créer un calque raster pour créer un nouveau calque multicanal contenant uniquement les canaux souhaités.
  • Vous pouvez également créer un nouveau jeu de données contenant uniquement les bandes souhaitées avec des bandes composites et utiliser le jeu de données résultant comme entrée de l'outil.
  • En Python, les bandes souhaitées peuvent être directement spécifiées dans le paramètre de l'outil sous forme de liste.

Voir Environnements d'analyse et Spatial Analyst pour plus de détails sur les environnements de géotraitement qui s'appliquent à cet outil.


Installation à l'aide de la couche AWS Lambda

Si vous allez éditer un travail (ou lorsque vous en créez un nouveau), il y a une section facultative qui est réduite appelée "Bibliothèques de scripts et paramètres de travail (facultatif)". Là, vous pouvez spécifier un compartiment S3 pour les bibliothèques Python (ainsi que d'autres choses). Je ne l'ai pas encore essayé moi-même pour cette partie, mais je pense que c'est ce que vous recherchez.

À partir de maintenant, vous pouvez utiliser des modules d'extension et des bibliothèques Python avec vos scripts AWS Glue ETL tant qu'ils sont écrits en Python pur. Les bibliothèques C telles que les pandas ne sont pas prises en charge à l'heure actuelle, ni les extensions écrites dans d'autres langages.

La bibliothèque/dépendance AWS GLUE est peu alambiquée

il existe essentiellement trois façons d'ajouter les packages requis


Syntaxe

Raster en entrée à partir duquel les cellules seront extraites.

Données de masque d'entrée définissant les zones à extraire.

Il peut s'agir d'un raster ou d'un jeu de données d'entité.

Lorsque les données du masque en entrée sont un raster, les cellules NoData du masque se verront attribuer des valeurs NoData sur le raster en sortie.

Lorsque le masque en entrée contient des données d'entité, les cellules du raster en entrée dont le centre se trouve dans le périmètre de l'entité seront incluses dans la sortie, tandis que les cellules dont le centre se trouve en dehors recevront NoData.

Valeur de retour

Raster en sortie contenant les valeurs de cellule extraites du raster en entrée.


La définition d'objets en mode édition semble souvent échouer dans le script python

J'essaie de comprendre pourquoi j'obtiens toujours une erreur de contexte pour bpy.ops.mesh.select_all, j'ai donc ajouté la ligne print(bpy.context.mode) et commenté la ligne qui échouait (plus la ligne suivante qui prend des mesures )

ce que j'obtiens dans la console (ce script est exécuté à partir de la console plutôt que d'être exécuté sur place) est un mélange de sorties 'OBJECT' et 'EDIT_MESH' .. suggérant que mode_set échoue la plupart du temps.

J'utilise Blender 2.68a sous Windows 7.

Éditer J'ai découvert la cause réelle de mon problème (indiquée par l'édition d'Adhi) et je voulais l'ajouter à mon message afin que d'autres puissent en retirer quelque chose - les objets qui n'étaient pas passés en mode édition étaient sur un autre calque. Une fois tous les calques actifs, mon script a pu basculer tous les objets en mode édition. Donc, fondamentalement, un objet dans un calque non sélectionné ne peut pas être défini en mode édition.

Je suis également reconnaissant pour les autres aides et suggestions, elles m'ont été utiles pour m'aider à apprendre les scripts python dans Blender, ce que j'aimerais utiliser plus largement.


J'ai une action qui fait ça :

Lorsque j'exécute cette action, je me retrouve avec la fenêtre Nouveau document . La largeur et la hauteur dans la fenêtre sont les dimensions de l'image du presse-papiers = les dimensions de vos objets/couches.

Vous pouvez ensuite appuyer sur Echap pour fermer la fenêtre.

(Sur Windows, pensez simplement au Cmd comme Ctrl)

Vous pouvez faire une sélection du calque par exemple en ctrl ou cmd en cliquant sur la vignette du calque, puis en regardant le panneau d'informations F8 , il vous montrera les dimensions de la sélection.

Dans le coin supérieur droit où vous pouvez voir la flèche pointant vers le bas, vous pouvez trouver les options et à l'intérieur, vous pouvez définir l'unité de la règle en pixels ou ce que vous voulez qu'elle affiche.

Utilisez la transformation libre Ctrl + T et lorsque la transformation libre est active, allez vérifier le panneau d'informations F8 comme indiqué ci-dessus. Cela fonctionne même si l'objet se trouve en dehors de la zone du document.

Voici une autre réponse qui est légèrement liée: Comment mesurer les distances en .psd

Surtout la partie inférieure de la réponse qui répertorie les méthodes d'exportation des styles de calque au format css, ce qui inclut la largeur et la hauteur, bien sûr.


5 réponses 5

Le contenu de votre fichier de bureau devrait ressembler à (voir comment créer un fichier .desktop à l'aide d'un éditeur de texte) :

Dans le premier cas, le champ Terminal est défini sur false (peut-être contrairement à vos attentes) et dans le second cas est défini sur true , mais le résultat est dans les deux cas le même.

à la fin de vos commandes.

Comme pour moi, snapd n'utilise pas toute la bande passante du système pour actualiser les snaps à chaque fois que je travaille presque la nuit.

Cela a donc fonctionné pour moi de créer un fichier .sh lié à un fichier .desktop.
Le contenu du fichier .sh était

-S dans la première ligne du fichier .sh est utilisé pour envoyer STDINPUT à la commande sudo, ce qui signifie une exécution directe sans entrer de mot de passe.

Le contenu du fichier .desktop était :

Créez le fichier ci-dessus. N'oubliez pas de sudo chmod +x filename.sh

Comme indiqué dans la spécification d'entrée de bureau, Terminal=true indique au lanceur de lancer votre script dans une fenêtre de terminal. L'émulateur de terminal choisi dépend des paramètres par défaut de vos applications et de l'environnement de bureau. Dans GNOME, c'est gnome-terminal, dans KDE, c'est Konsole. (Sans DE, en clair WM il y a un bogue dans xdg-open, et Terminal=true juste ignoré, voir problème)

Vous avez besoin de cette ligne pour exécuter votre script et lancer un shell après celui-ci.

  1. sh -c 'COMMAND' exécute le binaire "sh" trouvé dans $PATH qui exécute COMMAND (sur de nombreux systèmes, sh est le lien symbolique vers bash , mais pour la portabilité "sh" est préférable)
  2. echo bonjour $SHELL fait deux choses. Tout d'abord, il exécute echo hello puis, après l'exécution de cette commande, lance $SHELL.

Si vous voulez ne pas ajoutez une commande qui attend que vous quittiez, un émulateur de terminal exécutera simplement votre programme et sortir.

P.S. Si vous voulez juste ne pas fermer votre terminal, vous pouvez faire

(la lecture attendra que vous appuyiez sur Entrée, le sommeil n'attendra que 5 secondes)

P.P.S $SHELL sera probablement le même que la dernière section dans /etc/passwd en ligne avec votre utilisateur.

La valeur de $HOME, $USER, $SHELL, $PATH, $LOGNAME et $MAIL est définie en fonction des champs appropriés dans la saisie du mot de passe.


TLDR : Photoshop ne peut pas créer de véritables images vectorielles. C'est une idée fausse très répandue.

Pensez-y comme à une voiture. -- Pouvez-vous rouler en 4x4 avec une Toyota Prius ? Bien sûr vous pouvez! Est-ce qu'il va faire tout ce qu'un Jeep Wrangler peut faire ? Zut non. Il y a un raison toi besoin d'utiliser un véhicule à 4 roues motrices pour faire du 4 roues, tout comme il y a un raison toi besoin d'utiliser une application vectorielle pour créer des fichiers vectoriels.

Quelle que soit la façon dont vous créez un fichier et l'enregistrez, Photoshop toujours enregistre à la fois le vecteur et raster information. Cela ne ressemble à aucune véritable application vectorielle.

Toi ne peut pas créer un vecteur des dossiers avec Photoshop. Vous pouvez uniquement créer des fichiers raster avec des données vectorielles intégrées. Cela signifie qu'il peut y avoir un carré vectoriel et que ses bords resteront nets et nets, cependant, si ce carré a un remplissage en dégradé. Ce remplissage dégradé est raster entièrement et cela sera souffrir sur une certaine échelle.

Des applications telles qu'Illustrator, Inkscape, CorelDraw, Xara, Sketch, etc. ne peuvent en réalité contenir que des données vectorielles indépendantes de la résolution à 100 %. Il ne s'agit pas de « personnes préférant » utiliser une application vectorielle. C'est obligatoire si vous voulez un vrai fichier vectoriel à la fin.

Cela ne veut pas dire que le vecteur outils dans Photoshop sont globalement inférieurs, ils ne sont pas. Oui toi pouvez dessinez avec les outils vectoriels de Photoshop et créez du contenu vectoriel. Mais pour tirer le meilleur parti de ce contenu vectoriel dans Photoshop, vous devez toujours utilisez Photoshop pour toutes les modifications futures. Lorsque vous agrandissez ou transformez un conteneur vectoriel dans Photoshop, Photoshop interpole les données raster intérieures pour s'adapter à la transformation. Cette interpolation ne fait pas se produire en dehors de Photoshop. Ainsi, après avoir exporté/enregistré, vous pouvez mettre à l'échelle quelque chose comme un EPS de Photoshop, les bords vectoriels seront mis à l'échelle et resteront nets car ils sont vectoriels, mais l'interpolation des données raster le fait. ne pas se produire en dehors de Photoshop. Les "pixels cassés" sont donc entièrement possible avec un EPS Photoshop même si vous avez utilisé des outils vectoriels. Ce problème survient lorsque vous enregistrer le fichier ou exportation il. Dans tous les formats vectoriels - PDF, EPS, PSD - Photoshop crée un fichier raster avec des données vectorielles intégrées. Photoshop fait ne pas créer un fichier vectoriel. C'est tout à fait différent applications vectorielles réelles.

À des fins de production, cette différence peut être largement sans importance si vous travaillez déjà à un ppi élevé dans Photoshop. Mais un utilisateur doit savoir que le simple fait d'utiliser les outils vectoriels de Photoshop et d'enregistrer au format EPS/PDF ne crée pas de fichiers vectoriels en utilisant tout version actuellement disponible de Photoshop (CC2017 est la plus récente).

Je me rends compte que certains utilisateurs souhaitent que Photoshop crée des fichiers vectoriels, car cela signifie qu'ils n'ont pas besoin d'apprendre une nouvelle application pour générer un nouveau format de fichier. Cependant, il y a certainement pas autour de. Si tu veux fichiers vectoriels réels, toi doit utiliser une application vectorielle réelle. Photoshop est et a toujours été un raster application, d'où "photo" dans son nom.


Nous contacter

Si vous avez des questions, des suggestions ou des commentaires sur l'ERDDAP en général (pas ce
l'installation ERDDAP ou ses jeux de données), veuillez envoyer un e-mail à bob dot simons à noaa dot gov
et incluez l'URL ERDDAP directement liée à votre question ou commentaire.
Ou, vous pouvez rejoindre le groupe Google ERDDAP / liste de diffusion en visitant
https://groups.google.com/forum/#!forum/erddap et en cliquant sur "Demander l'adhésion".
Une fois que vous êtes membre, vous pouvez y poster votre question ou effectuer une recherche pour voir si la question
a déjà été demandé et répondu.


Légal

Sous quelle licence Inkscape est-il publié ?

LICENCE PUBLIQUE GÉNÉRALE GNU Version 2, juin 1991 [2]. En bref, cela signifie que vous êtes libre d'utiliser et de distribuer Inkscape à toutes fins, commerciales ou non commerciales, sans aucune restriction. Vous êtes également libre de modifier le programme comme vous le souhaitez, mais avec la seule restriction que si vous distribuez la version modifiée, vous devez fournir l'accès au code source de la version distribuée.

Comment le nom et le logo d'Inkscape sont-ils protégés ?

Le nom Inkscape est une marque déposée en vertu de la loi américaine sur les marques déposées, détenue et administrée par Software Freedom Conservancy. Notre politique est disponible sur le site Internet, et décrit les conditions dans lesquelles vous pouvez utiliser notre nom et notre logo. Nous avons cherché à rendre nos exigences raisonnables et conviviales : nous voulons éviter des choses comme d'autres groupes prétendant être ou nous représenter alors qu'ils ne le font pas, ou de distribuer notre logiciel d'une manière qui n'est pas conforme à notre licence.

Le logo est également une marque déposée et couvert par notre politique de marque déposée. Nous sommes d'accord avec les personnes qui créent des œuvres dérivées qui aident à promouvoir Inkscape ou à l'adapter à un style d'interface utilisateur donné, mais nous ne voulons pas qu'il soit abusé par des entreprises qui pourraient l'intégrer dans leurs propres logos. Pour le merchandising, vous êtes invités à utiliser notre logo non modifié pour toute autre chose, veuillez contacter le conseil d'administration d'Inkscape pour obtenir l'autorisation.