Suite

Calculer un nouveau champ pour la table raster en fonction de la valeur de la table jointe à l'aide d'ArcPy ?


J'ai besoin de savoir s'il est possible de calculer un nouveau champ pour une table raster en fonction d'une valeur d'une table jointe. Idéalement, j'aimerais pouvoir accomplir cette tâche sans avoir à ajouter une table et une couche raster à la table des matières dans ArcMap. S'il vous plaît, aidez!

La section suivante de mon script s'exécute avec succès jusqu'à ce qu'elle obtienne la ligne qui crée le curseur de mise à jour :

#ArcMap v. 10.2.1 # Ajouter 3 champs à chacun des nouveaux rasters produit #Effectuer une jointure spatiale reliant la table des taux variables au raster produit si sPotash et sPotash != "#": arcpy.PolygonToRaster_conversion(sPotash,"ZONE ",""C:UsersDesktopCurrentWorkpmOutput_1192015pt_tst","CELL_CENTER","ZONE",1) arcpy.AddField_management("pt_tst","LB_P_AC", "DOUBLE","","", ", "","") arcpy.AddField_management("pt_tst","LB_P_SQM", "DOUBLE","","", "","") arcpy.AddField_management("pt_tst","P_P_SQM", "DOUBLE ","","", "","") arcpy.MakeRasterLayer_management(""C:UsersDesktopCurrentWorkpmOutput_1192015pt_tst","pt_tst_lyr") arcpy.TableToTable_conversion("Variable_Rates.csv", ""C:UsersDesktopCurrentWorkpmOutput_1142015","Potash_Rates","#","Potash") arcpy.AddJoin_management("pt_tst_lyr","Value","Potash_Rates.dbf","Zone") #arcpy.JoinField_management("pt_tst_lyr", "VALUE", "Potash_Rates.dbf","ZONE","Potash") potashrstr = pt_tst_lyr cursor = arcpy.UpdateCursor("pt_tst_lyr") champs = ["Potash","LB _P_SQM"] #le champ Potasse est un champ appartenant à la table Variable_Rates avec arcpy.da.UpdateCursor("pt_tst_lyr",fields) comme curseur : pour la ligne dans le curseur : ligne[1] = ligne[0]/4046.86

lorsque vous joignez une table, les noms des champs à utiliser dans ArcGIS deviennent une concaténation du nom de la table et du nom du champ. Donc tu devrais essayer avec

champs = ["Potash_Rates.Potash","pt_tst.LB_P_SQM"]

il y a aussi une petite faute de frappe dans votre nom raster, mais probablement pas dans votre nom d'origine

curseur = arcpy.UpdateCursor("pt_tst_lyr") doit être supprimé

""C:UsersDesktopCurrentWorkpmOutput_1192015pt_tst" est "C:UsersDesktopCurrentWorkpmOutput_1192015pt_tst"

EDIT : vous pouvez aussi essayer avec le calculateur de champ

arcpy.CalculateField_management("pt_tst_lyr", "pt_tst.LB_P_SQM", "[Potash_Rates.Potash]/4046.86")

EDIT : je n'ai pas réalisé tout de suite que tu travaillais avec une grille, donc la syntaxe est un peu différente

arcpy.CalculateField_management("pt_tst_lyr", "pt_tst.vat:LB_P_SQM", "[Potash_Rates.Potash]/4046.86")

Vous pouvez créer une fonction définie par l'utilisateur pour cela :

puis utilisez-le pour définir votre colonne calculée :

Cela semble être plus un travail pour les vues (vues indexées, si vous avez besoin de recherches rapides sur la colonne calculée) :

Cela présente une différence subtile par rapport à la version de la sous-requête en ce sens qu'elle renverrait plusieurs enregistrements au lieu de produire une erreur s'il existe plusieurs résultats pour la jointure. Mais cela est facilement résolu avec une contrainte UNIQUE sur c_const.code (je soupçonne que c'est déjà une PRIMARY KEY ).

C'est aussi beaucoup plus facile à comprendre pour quelqu'un que la version sous-requête.

Vous pouvez le faire avec une sous-requête et UDF comme marc_s l'a montré, mais c'est probablement très inefficace par rapport à un simple JOIN , car une FDU scalaire devra être calculée ligne par ligne.


Procédure

Le raster de seuil définit les valeurs de cellule qui sont déterminées comme ayant une accumulation suffisante pour être classées en tant que flux, et le raster de seuil est généré à partir d'un raster créé par l'outil GP d'accumulation de flux.

    Créez la direction du flux et les rasters d'accumulation de flux.

A. Ouvrez ArcMap et ajoutez le DEM.
B. Exécutez l'outil Flow Direction GP avec le DEM comme entrée.
C. Exécutez les outils GP d'accumulation de flux avec le raster de direction de flux comme entrée.

A. Ouvrez la calculatrice raster.
B. Saisissez l'instruction suivante dans le champ Map Algebra expression et exécutez l'outil :

Cela crée un raster qui définit le réseau de flux en attribuant des valeurs NoData aux cellules qui n'atteignent pas le seuil. Les cellules restantes, représentant l'accumulation de flux, sont contenues dans une seule ligne dans la table attributaire de raster.

A. Ouvrez l'outil Watershed GP.
B. Spécifiez le raster de direction de flux créé à l'étape 1 comme raster de direction de flux en entrée.
C. Spécifiez le raster d'accumulation de seuil créé à l'étape 4 comme raster de point d'écoulement d'entité.


Avec shift() implémenté dans la v1.9.6, c'est assez simple.

  1. La nouvelle fonction shift() implémente un avance/retard rapide de vecteur, liste, data.frames ou alors data.tables. Il prend un argument de type qui peut être soit "décalage" (par défaut) ou "conduire". Il permet une utilisation très pratique avec := ou set() . Par exemple : DT[, (cols) := shift(.SD, 1L), by=id] . S'il vous plaît jeter un oeil à ?shift pour plus d'informations.

Voir l'historique pour les réponses précédentes.

Plusieurs personnes ont répondu à la question spécifique. Voir le code ci-dessous pour une fonction à usage général que j'utilise dans des situations comme celle-ci et qui peut être utile. Plutôt que d'obtenir simplement la ligne précédente, vous pouvez aller autant de lignes dans le "passé" ou "futur" que vous le souhaitez.

D'après le commentaire de @Steve Lianoglou ci-dessus, pourquoi pas simplement :

Et évitez d'utiliser seq_len ou head ou toute autre fonction.

En suivant la solution d'Arun, des résultats similaires peuvent être obtenus sans se référer à .N

J'ai ajouté un argument de remplissage et changé certains noms et l'ai appelé shift . https://github.com/geneorama/geneorama/blob/master/R/shift.R

Voici ma solution intuitive :

Ici invshift , le nombre de lignes moins 1, est 4. nrow(df) vous fournit le nombre de lignes dans une trame de données ou dans un vecteur. De même, si vous voulez prendre des valeurs encore antérieures, soustrayez de nrow 2, 3, . etc, et aussi mettre NA en conséquence au début.

En utilisant un for, vous pouvez même utiliser la valeur précédente de la ligne de cette nouvelle colonne DT[(i-1), 4]


4 réponses 4

Voyez si cela aide. Mettez une 2ème copie de la table dans la requête, jointe à la 1ère copie sur Account et FiscalYear mais pas sur FiscalPeriod. Ensuite, le ActualBeginningBalance peut être calculé à partir de la 2ème copie de la table avec une contrainte pour sélectionner uniquement FiscalPeriod < la FiscalPeriod de la 1ère table. Remarque - vous pouvez obtenir des résultats nuls pour janvier, que vous devrez peut-être convertir en 0.

OK, c'est un peu plus compliqué - j'ai fini par utiliser une sous-requête similaire à l'autre réponse, mais j'ai calculé l'EB au lieu d'essayer de l'extraire de la table


Qui peut utiliser le SIG ?

Toute organisation qui détient des informations sur des objets géographiques peut charger ces informations dans un SIG tant qu'elle dispose de données cartographiques contenant les objets pertinents. Par conséquent, ce ne sont pas seulement les attributs des données géographiques qui peuvent être interrogés, mais toutes sortes d'informations.

Pour que cela fonctionne, il est nécessaire d'avoir une sorte de système de référencement commun. Cela signifie que l'enregistrement correct dans les données géospatiales peut être mis en correspondance avec l'enregistrement correspondant dans les données non géospatiales.

Par exemple, Ordnance Survey (OS) contient une table d'informations spatiales sur les rivières (nom, emplacement, longueur) et un groupe environnemental détient une table d'informations environnementales sur les rivières (nom, type de source, pollution par les nitrates, débits). Les deux tables contiennent toutes deux le nom de la rivière, de sorte que les deux tables peuvent être jointes en utilisant l'attribut name comme référence commune. La jonction des tables donne aux informations environnementales une référence spatiale (emplacement), de sorte que les informations environnementales peuvent désormais être visualisées sur un affichage SIG.

Ce type d'application dépend de la capacité à établir des liens entre les entités dans les deux ensembles d'informations. Il est souvent préférable d'utiliser un système de référencement numérique compris par tous les utilisateurs d'un type particulier d'informations, afin que les caractéristiques spécifiques puissent être identifiées sans ambiguïté. Si vous n'utilisez que des noms de texte, cela peut tomber si un ensemble d'informations a un nom mal orthographié ou s'il y a des entrées en double. Il existe, par exemple, de nombreux tronçons de rivière en Grande-Bretagne portant le nom d'attribut River Avon.

Ordnance Survey a développé son propre système de référence commun utilisant des millions d'identifiants topographiques (TOID). Ce sont des numéros uniques à 16 chiffres s'appliquant à chaque caractéristique de sa base de données à grande échelle. TOID permet aux utilisateurs de lier, de combiner ou de transférer des informations beaucoup plus facilement et de manière rapide et efficace. Ce système fait partie d'un vaste projet connu sous le nom de Cadre National Numérique (DNF).

Logiciel SIG

Toute information relative à un lieu au sol peut être chargée dans un SIG et analysée. Il existe différentes manières d'interroger et d'exploiter les informations attachées aux objets SIG.

Visitez le logiciel de cartographie si vous avez besoin d'aide pour gérer vos données géographiques ou si vous souhaitez vous engager avec un partenaire pour vous aider à gérer vos besoins.

Quels sont les attributs ?

&lsquoAttribute&rsquo décrit toute information sur un objet qui peut être stockée en plus de ses propriétés géographiques.

Par exemple, une route peut avoir un numéro, un nom, une largeur maximale, une limite de vitesse, etc. Le SIG peut travailler avec ces informations d'attributs descriptifs et les présenter dans un format intelligent et supérieur à ce qui peut être obtenu en plaçant du texte sur une carte papier.

Avec le SIG, vous n'êtes plus limité par le nombre de descriptions textuelles pouvant tenir dans l'espace disponible pour transmettre des informations sur les objets d'une zone. Des informations tabulaires peuvent être stockées sur chacun des objets comme dans une base de données, permettant ainsi d'enregistrer un tableau presque infini d'attributs. Tous les SIG disposent d'outils simples qui permettent l'interrogation des caractéristiques. Par conséquent, en utilisant votre souris pour cliquer sur un objet, un ensemble complet d'attributs peut être affiché sans que ces informations doivent être à l'écran tout le temps. L'objet d'intérêt peut être identifié par le graphique de la carte visuelle, puis cet objet peut vous indiquer ses propres attributs.

Tables d'attributs

La plupart des SIG permettent à l'utilisateur de visualiser les données sous forme de tableau sans nécessairement utiliser de graphiques cartographiques. Cela équivaut à utiliser un tableur. Souvent, vous pouvez connaître le nom d'un objet mais pas nécessairement où il se trouve, vous pouvez donc utiliser le tableau pour trouver l'objet, puis passer à la carte pour voir où il se trouve.

Le SIG forme un lien constant entre les attributs et les propriétés géographiques de chacune des entités : vous pouvez obtenir l'un ou l'autre si vous savez quelque chose sur l'autre. C'est la base des services de cartographie de localisation sur Internet : vous pouvez générer une carte pour n'importe quel emplacement car il existe une couche de données avec un lien entre l'attribut de code postal et les coordonnées géographiques.

Le SIG peut être utilisé pour établir un lien avec toute information pouvant exister sur un objet à partir d'autres systèmes.

Utiliser le SIG ? Soyez sélectif

Les entités des couches cartographiques SIG peuvent être interrogées en sélectionnant et en affichant celles qui satisfont à des critères particuliers.

Les données stockées dans des tables peuvent être difficiles à digérer en une seule fois. Il est nécessaire de filtrer les ensembles d'informations pertinents correspondant à un groupe particulier de conditions. Par exemple, imaginez que vous visitez une ville que vous ne connaissez pas. Vous pourriez avoir une carte montrant le centre-ville et l'emplacement de tous les restaurants. Avec le SIG, une gamme d'informations sur ces restaurants pourrait être stockée, notamment le type de nourriture, le coût moyen par tête, etc.

Le SIG peut vous aider à décider quel restaurant vous souhaitez visiter. Vous avez envie de quelque chose d'un peu épicé, alors vous décidez de sélectionner des restaurants mexicains. Les enregistrements de la table seront identifiés et tous les restaurants mexicains de la ville seront mis en évidence sur l'écran de la carte. Vous pouvez affiner davantage votre recherche. Vous avez un budget limité, vous ne voulez donc pas que l'addition soit trop chère : vous pouvez donc ajouter un filtre supplémentaire à la requête en demandant une liste de tous les restaurants mexicains à coût moyen. L'écran affiche maintenant uniquement les enregistrements qui correspondent à vos besoins actuels et vous pouvez peut-être choisir les sélections que vous souhaitez en fonction de l'endroit où ils se trouvent dans la ville.

Vous pouvez rendre ce type de requête aussi simple ou aussi compliqué que vous le souhaitez, tant que les champs de données sont là pour interroger. Cette capacité n'est pas propre aux logiciels SIG, de nombreux types de systèmes d'information différents vous permettront d'effectuer des sélections. Cependant, seul le SIG peut fournir une représentation visuelle de l'emplacement des résultats de la requête. De plus, le SIG peut appliquer des critères géographiques au filtre de sélection de sorte que les objets soient sélectionnés en fonction de leur emplacement.


2. Création de la carte des zones préférées

Étant donné que nous n'avons pas pu trouver une couche d'utilisation des terres qui fournit à Dream Team toutes les utilisations des terres couvrant les zones souhaitées, deux fichiers de formes d'utilisation des terres différents, "land-usewest" et "land-useeast" ont été combinés. pour produire un seul fichier de formes d'utilisation des terres qui couvre notre zone d'étude. Avant de combiner les deux fichiers de formes, nous avons dû transformer la projection du fichier de formes “land-usewest” pour qu'elle corresponde à la projection du fichier de formes land-useeast”. En effet, le fichier de formes “land-usewest” utilise la projection NAD 1927 tandis que le fichier de formes “land-usewest” utilise la projection Nad1983 Harn. Nous avons utilisé l'outil “project” pour accomplir la transformation. Tout d'abord, nous avons sélectionné le “NAD 1983 HARN StatePlane Washington North FIPS 4601 Feet.prj” des systèmes de coordonnées projetées comme système de coordonnées en sortie. Deuxièmement, sous Transformation géographique, nous avons sélectionné “NAD_1927_TO_ NAD 1983_NADCON” pour le transformer de NAD 1927 à NAD 1983, puis nous avons sélectionné “NAD_1983_To_HARN_WA_OR” pour le changer de NAD 1927 à NAD 1983 HARN. Après la transformation, nous avons coupé le fichier de formes d'utilisation des terres de l'ouest de Seattle au fichier d'utilisation des terres de l'est de Seattle, car c'est notre domaine d'intérêt. Ensuite, nous avons reclassé les deux fichiers de formes en créant deux nouveaux champs appelés “value” dans chaque fichier de formes en fonction de l'utilisation des terres et avons utilisé l'outil “dissolve” pour réduire le nombre de polygones partageant la même valeur d'utilisation des terres. Pour combiner les deux calques, nous avons utilisé l'outil “union” pour produire un seul fichier de formes et l'avons nommé “seattlelanduse”. Après avoir joint les deux fichiers de formes via l'union, le champ “value” de la carte d'utilisation des terres du côté ouest de Seattle a été automatiquement remplacé par “value1” car dans la table attributaire “seattlelanduse”, deux champs de le même nom n'est pas autorisé. Nous avons ensuite créé trois fichiers de formes différents à partir de la couche de fichiers de formes “seattlelanduse” : i) industriel ii) agricole iii) commercial.

Pour produire une carte montrant uniquement les utilisations industrielles des terres, nous avons ajouté un nouveau champ dans la table attributaire du fichier de formes “seattlelanduse” appelé “values” où les terres industrielles proviennent à la fois de “value” et “value1” les champs ont reçu une valeur de 1 tandis que les autres utilisations des terres ont reçu une valeur de 0. Le fichier est enregistré sous le nom “industriel”. Ensuite, nous avons converti le fichier de formes “industrial” en un fichier raster IMAGINE en utilisant l'outil de conversion nommé “polygon to raster”. La sortie a été enregistrée sous le nom “indusras”. Pour créer une carte pour les utilisations des terres agricoles, le même processus a été répété, la sortie a été enregistrée sous le nom “agriras”.

Pour créer la proximité du fichier de formes d'utilisation des terres commerciales, nous avons d'abord créé un nouveau champ dans lequel les utilisations commerciales des terres ont reçu une valeur de 1 et les autres utilisations des terres ont reçu une valeur de 0. Cette couche est enregistrée sous le nom " 8220commerciallu / 8221. Ensuite, nous avons utilisé le fichier de formes City Block 2000 et créé deux nouveaux champs nommés “x” et “y” et calculé la géométrie pour les deux en choisissant “X Coordinate of Centroid” dans le paramètre de propriété pour le “x& champ #8221 et “Y Coordonnée du centre de gravité” pour le champ “y”. Les points de données XY ont ensuite été ajoutés et réglés sur la même projection que nos autres couches. Ce fichier a été exporté et enregistré sous le nom “landusexy”. Le processus ci-dessus a été répété pour le fichier de formes « 82 21 shapefile . Il était nécessaire de séparer les polygones pour la couche “commercial” car nous avons besoin que chaque polygone ait un point centroïde. Le résultat est deux ensembles de points : un ensemble situé au centre de chaque polygone d'îlot et un autre ensemble situé au centre de chaque polygone « commerciallu ». Une fois ces points en place, nous pouvons les utiliser pour calculer la distance entre les points centroïdes du City Block 2000 et les points centroïdes de la couche « L'outil “near” a été utilisé pour calculer la proximité des zones commerciales, avec le “landusexy” comme entrée et le “commercial xy” comme sortie un nouveau champ appelé “neardist” a été créé dans la table attributaire “landusesexy”. Dans cette table attributaire, nous avons ajouté un nouveau champ appelé “score” pour normaliser les distances afin que les valeurs soient comprises entre 0 et 100. Cela a été fait en saisissant “([neardist]/(valeur maximale de [neardist])*100)” dans le calculateur de champ du “score”. Afin d'afficher les distances en continu (représentées par des polygones au lieu de points), nous avons joint les informations de la table attributaire de “landusexy” à la table attributaire de la table attributaire City Block 2000. Enfin, le City Block 2000 contenant les valeurs de score a été converti en un fichier raster IMAGINE, nommé “proxcommras”.

GeoCommunity a séparé les deux fichiers routiers en quatre secteurs. Pour connecter les huit secteurs, nous avons utilisé l'outil d'ajout, créant ainsi un seul fichier de route. Puisque notre analyse ne s'intéresse qu'aux routes et autoroutes principales, nous devons la séparer des données redondantes (en thi) s cas, petites routes et rues . En sélectionnant des valeurs noires dans la table attributaire (les autoroutes et les artères sont répertoriées avec des valeurs), nous avons supprimé les petites routes et rues. Ensuite, en utilisant les valeurs select by dans la table attributaire avec des instructions SQL telles que (par exemple, en utilisant le champ approprié pour sélectionner les autoroutes interétatiques) "NUMBER = I-5 ou number = I-90 ou NUMBER = I-405", nous avons séparé l'autoroute et les artères en deux couches distinctes, car celles-ci auront des pondérations différentes dans notre analyse.


Abstrait

Le but de cette recherche était de mettre en œuvre un système d'information géographique avec des méthodes de prise de décision multicritères, pour sélectionner l'emplacement le plus réalisable pour l'installation de centrales éoliennes en Equateur continental. De plus, un processus de normalisation a été effectué, qui consiste à établir un indice de performance globale pour évaluer les résultats. Enfin, le coefficient de corrélation de Pearson est utilisé pour analyser la correspondance mutuelle entre les méthodes de prise de décision multicritères.

Dans cette recherche, différents critères de sélection qui incluent des paramètres météorologiques (vitesse du vent, densité de l'air), le relief (pente), la localisation (distances aux postes, réseau routier, zones urbaines, lignes de transport, bornes de recharge) et des paramètres environnementaux (couverture végétale), Ont été considérés.

Les résultats de cette recherche ont révélé que le site avec l'indice de performance global le plus élevé est la région andine de l'Équateur, avec une superficie de plus de 617,5 km 2 . Le résultat de l'indice de performance global indique que les quatre méthodes de prise de décision multicritères sélectionnées ont fourni des résultats similaires, où la valeur était égale ou supérieure à 75 % de la ponctuation maximale d'un emplacement idéal. Dans ce contexte, les méthodes analysées convergent vers des solutions similaires et indiquent que la méthode de prise de décision multicritères est un outil puissant pour sélectionner les emplacements idéaux pour les parcs éoliens.


Procédure

Les instructions ci-dessous décrivent comment extraire les coordonnées X et Y du centre de chaque cellule d'une grille à l'aide de l'outil Raster to Point et de l'outil Calculer la géométrie.

  1. Créez un point pour chaque cellule de la grille en utilisant le Raster à point outil, en suivant les étapes suivantes :
    1. Ajoutez le raster de grille à ArcMap à l'aide de la Ajouter des données bouton dans le Standard barre d'outils.
    2. Dans le ArcToolbox fenêtre, accédez à Outils de conversion > À partir de la trame > Raster à point.
    3. Dans le Raster à point boîte de dialogue, sélectionnez la grille pour le Raster en entrée. Quand le Raster en entrée est réglé, le Domaine paramètre est automatiquement changé en Valeur.
    4. Définissez un nom et un emplacement pour le Entités ponctuelles en sortie.

    La figure ci-dessous montre un exemple de points convertis à partir de la grille à l'aide du Raster à point outil.

    1. Ajoutez deux nouveaux champs dans la table attributaire, un pour X et un pour Y, et utilisez le Calculer la géométrie outil pour calculer les coordonnées des points, en suivant les étapes suivantes :
      1. Dans le Table des matières, cliquez avec le bouton droit sur le calque créé à l'étape 1 et Ouvrir la table attributaire.
      2. Cliquez sur Options de tableau > Ajouter le champ.
      3. Dans le Ajouter le champ fenêtre, nommez le champ Northing (pour les coordonnées Y) et définissez le Taper à Double.

      L'image suivante est un exemple de fichier Microsoft Excel contenant les coordonnées X et Y exportées à partir d'une table attributaire.


      Lundi 18 juillet 2016

      Exercice 4 : Utilisation des champs et des sélections

      Les objectifs
      L'objectif de cet exercice était d'ajouter et de calculer des champs ainsi que de sélectionner des entités à l'aide d'instructions SQL en Python. Cela a été fait en utilisant le script (et les données) de l'exercice trois et en modifiant certains des outils utilisés.

      Le processus

      Tout d'abord, les modules système nécessaires à cet exercice ont été importés. Ensuite, des variables ont été définies. Ensuite, les outils 'ajouter un champ', 'calculer un champ' et 'sélectionner' ont été utilisés. Enfin, la compacité a été calculée et l'exercice a été complété.

      #importer des modèles de système
      importer arcpy
      à partir d'arcpy importer env
      importer le système d'exploitation
      heure d'importation
      date/heure d'importation

      #autoriser le script à écraser les fichiers existants
      arcpy.env.overwriteOutput = True

      #créer des variables
      print"Créer des variables",datetime.datetime.now().strftime("%H:%M:%S")

      #géodatabase d'entrée
      ex3geodatabasePath="Q:StudentCourseworkCHupyGEOG.491.801.2167MILLERZMBlankResults_Ex3.gdb"

      #Ce nom de fichier sera utilisé pour le nom fc 'dissoudre la sortie' suivant
      intersectName = "IntersectedFcs"
      dissolveOutput = os.path.join(ex3geodatabasePath,intersectName)+"_Dissolved"

      #variables de sortie
      selectName = "DissolveFC_Selected"
      finalSelect = os.path.join(ex3geodatabasePath,selectName)
      print "Ajout d'un champ au fcs dissous",datetime.datetime.now().strftime("%H:%M:%S")

      # Processus : Ajouter un champ
      arcpy.AddField_management(dissolveOutput, "Area_km2", "FLOAT", "", "", "", "","NULLABLE", "NON_REQUIRED", "")
      print "Calcul de la superficie en km2" ,datetime.datetime.now().strftime("%H:%M:%S")

      # Processus : Calculer le champ
      arcpy.CalculateField_management(dissolveOutput, "Area_km2", "[Shape_Area] / 1000000", "VB", "")
      print "Sélectionner uniquement les polygones avec des zones supérieures à 2 km",datetime.datetime.now().strftime("%H:%M:%S")

      # Processus : Sélectionnez (4)
      arcpy.Select_analysis(dissolveOutput, finalSelect, "Area_km2 >2")
      print "Ajout d'un champ pour le calcul de la compacité",datetime.datetime.now().strftime("%H:%M:%S")

      # Processus : Ajouter un champ (2)
      arcpy.AddField_management(finalSelect, "Compactness_Float", "FLOAT", "", "", "", "","NULLABLE", "NON_REQUIRED", "")
      print "Calculer la compacité" ,datetime.datetime.now().strftime("%H:%M:%S")

      # Processus : Calculer le champ (2)
      arcpy.CalculateField_management(finalSelect, "Compactness_Float", "[Shape_Area] / ([Shape_Length] * [Shape_Length] )", "VB", "")


      print "Calculs terminés" ,datetime.datetime.now().strftime("%H:%M:%S")

      Toutes les sources fournies par le Dr Christina Hupy

      Exercice 3 : Introduction au géotraitement avec Python

      Les objectifs

      L'objectif de cette mission était de se familiariser avec l'importation de modules pour configurer un script, la création de variables intelligentes et l'exportation de modèles de géotraitement sous forme de scripts. Cette tâche a été accomplie en recréant simplement les étapes effectuées dans le premier exercice de la classe, via des scripts en Python.

      Le processus

      Tout d'abord, il devait y avoir une connexion au modèle créé dans l'exercice un, cette connexion a été établie en exportant le modèle en tant que fichier .py et enregistré dans une géodatabase créée pour l'exercice trois. Ensuite, les modules ArcPy et les modules Python ont été importés dans Python afin de pouvoir écrire le script. Ces modules comprenaient : os, time et datetime. Ensuite, des variables ont été créées en liant des fichiers à leurs géodatabases respectives, puis des outils ont été utilisés pour manipuler les données. Une fois les données découpées, mises en mémoire tampon, sélectionnées, etc., elles ont été exportées vers la nouvelle géodatabase créée pour cet exercice. Enfin, les données ont été nettoyées, pour ainsi dire, et le script a généré un nouveau fichier dans la géodatabase.

      Les résultats

      #-------------------------------------------------------------------------------
      # Nom : Ex3
      # Objectif : Trouver des domaines idéaux pour les stations de ski
      #
      # Auteur : Zach Miller
      #
      # Date : 15/07/2016
      #-------------------------------------------------------------------------------
      # S'assurer que le programme fonctionne
      imprimer "Script initialisé"

      #importer des modèles de système
      importer arcpy
      à partir d'arcpy importer env
      importer le système d'exploitation
      heure d'importation
      date/heure d'importation
      arcpy.env.overwriteOutput = True

      #créer des variables
      print"Créer des variables",datetime.datetime.now().strftime("%H:%M:%S")

      #géodatabase d'entrée
      ex1geodatabasePath = "Q:StudentCourseworkCHupyGEOG.491.801.2167MILLERZMEx1.gdb"

      #inout noms
      nfsLand = "NFS_Land"
      snowDepth = "SnowDepth_in"
      temp = "Température_F"
      studyArea = "StudyArea"
      aéroports = "Aéroports"

      #liaison de la géodatabase avec le nom
      nfsInput = os.path.join(ex1geodatabasePath,nfsLand)
      snowDepthInput = os.path.join(ex1geodatabasePath,snowDepth)
      tempInput = os.path.join(ex1geodatabasePath,temp)
      studyAreaInput = os.path.join(ex1geodatabasePath,studyArea)
      airportsInput = "Q:StudentCourseworkCHupyGEOG.491.801.2167MILLERZMEx1.gdbAirports_Project"

      #variables de sortie
      ex3geodatabasePath = "Q:StudentCourseworkCHupyGEOG.491.801.2167MILLERZMBlankResults_Ex3.gdb"