Suite

Création de PolylineZ dans arcpy

Création de PolylineZ dans arcpy


Le script ci-dessous est légèrement modifié "Polyline example" de l'aide ArcGIS http://resources.arcgis.com/en/help/main/10.1/index.html#//018z00000008000000

import arcpy # les 3 lignes suivantes sont nouvelles d'arcpy import env env.outputZFlag = "Enabled" env.outputMFlag = "Enabled" # Une liste d'entités et de paires de coordonnées # 3e probablement la coordonnée Z ajoutée aux paires originales de XY feature_info = [[[ 1, 2, 1], [2, 4, 2], [3, 7, 3]], [[6, 8, 4], [5, 7, 5], [7, 2, 6], [ 9, 5, 7]]] # Une liste qui contiendra chacun des objets Polyline features = [] for feature in feature_info: # Créer un objet Polyline basé sur le tableau de points # Ajouter à la liste des objets Polyline features.append ( arcpy.Polyline( arcpy.Array([arcpy.Point(*coords) for coords in feature]))) # Conserver une copie des objets Polyline en utilisant CopyFeatures arcpy.CopyFeatures_management(features, "d:/scratch/polylines.shp ")

J'essaie de créer une polyligne 3D et j'échoue. Le script crée un fichier de formes polylineZ, mais toutes les entités sont plates avec Z=0 aux sommets. Qu'est-ce qui ne va pas ici s'il vous plaît ?


C'est un code de travail complet (pour ce que ça vaut), l'un des premiers outils arcpy que j'ai traduit à partir de la 9.3, donc c'est toujours un peu maladroit.:

import sys, os, string, arcpy InFolder = sys.argv[1] OutCoSys = sys.argv[2] ShapeName = sys.argv[3] #ShapeName = "JustFlightLinesNew.shp" ShapePath = InFolder ShapeFile = "%s %s.shp" % (ShapePath,ShapeName) if string.upper(OutCoSys) == "48": OutCoSys = "PROJCS['GDA_1994_MGA_Zone_48',GEOGCS['GCS_GDA_1994',DATUM['D_GDA_1994',SPHEROID['GRS_1980' ,6378137,298.257222101]],PRIMEM['Greenwich',0],UNITÉ['Degré',0.017453292519943295]],PROJECTION['Transverse_Mercator'],PARAMETRE['False_Easting',500000],PARAMETRE['False_Northing',10000000] ,PARAMETER['Central_Meridian',105],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0],UNIT['Meter',1]]" elif string.upper(OutCoSys) == "49" : OutCoSys = "PROJCS['GDA_1994_MGA_Zone_49',GEOGCS['GCS_GDA_1994',DATUM['D_GDA_1994',SPHEROID['GRS_1980',6378137,298.257222101]]],PRIMEM['Greenwich',0],UNIT,['Degree291994 ]],PROJECTION['Transverse_Mercator'],PARAMETRE['False_Easting',500000],PARAMETRE['False_Northing',10000000],PARAMETRE['Central_ Meridian',111],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0],UNIT['Meter',1]]" elif string.upper(OutCoSys) == "50": OutCoSys = " PROJCS['GDA_1994_MGA_Zone_50',GEOGCS['GCS_GDA_1994',DATUM['D_GDA_1994',SPHEROID['GRS_1980',6378137,298.257222101]],PRIMEM['Greenwich',0],UNIT['Degree',3295J174532925,1994 ['Transverse_Mercator'],PARAMETER['False_Easting',500000],PARAMETER['False_Northing',10000000],PARAMETER['Central_Meridian',117],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin' ,UNIT['Meter',1]]" elif string.upper(OutCoSys) == "51": OutCoSys = "PROJCS['GDA_1994_MGA_Zone_51',GEOGCS['GCS_GDA_1994',DATUM['D_GDA_1994',SPHEROID['GRS_1980'" ,6378137,298.257222101]],PRIMEM['Greenwich',0],UNITÉ['Degré',0.017453292519943295]],PROJECTION['Transverse_Mercator'],PARAMETRE['False_Easting',500000],PARAMETRE['False_Northing',10000000] ,PARAMETER['Central_Meridian',123],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0],UNIT['Meter',1]]" elif s tring.upper(OutCoSys) == "52": OutCoSys = "PROJCS['GDA_1994_MGA_Zone_52',GEOGCS['GCS_GDA_1994',DATUM['D_GDA_1994',SPHEROID['GRS_1980',6378137,298.257222101]],PRIMEM ,0],UNIT['Degree',0.017453292519943295]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000],PARAMETER['False_Northing',10000000],PARAMETRE['Central_Meridian',129],PARAMETER[ 'Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0],UNIT['Meter',1]]" elif string.upper(OutCoSys) == "53": OutCoSys = "PROJCS['GDA_1994_MGA_Zone_53',GEOGCS[ 'GCS_GDA_1994',DATUM['D_GDA_1994',SPHEROID['GRS_1980',6378137,298.257222101]],PRIMEM['Greenwich',0],UNIT['Degree',0.017453292519943295]],PROJECTION['Transverse_Mercator['],PARAMETER 'False_Easting',500000],PARAMETER['False_Northing',10000000],PARAMETER['Central_Meridian',135],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0],UNIT['Meter',1 ]]" elif string.upper(OutCoSys) == "54": OutCoSys = "PROJCS['GDA_1994_MGA_Zone_54',GEOGCS['GCS_GDA_1994',DATUM['D_GD A_1994',SPHEROID['GRS_1980',6378137,298.257222101]],PRIMEM['Greenwich',0],UNIT['Degree',0.017453292519943295]],PROJECTION['Transverse_Mercator'],PARAMETRE['False_Easting',500000], PARAMETER['False_Northing',10000000],PARAMETER['Central_Meridian',141],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0],UNIT['Meter',1]]" elif string.upper (OutCoSys) == "55": OutCoSys = "PROJCS['GDA_1994_MGA_Zone_55',GEOGCS['GCS_GDA_1994',DATUM['D_GDA_1994',SPHEROID['GRS_1980',6378137,298.257222101]],PRIMEM0]'Greenwich' ,UNIT['Degree',0.017453292519943295]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000],PARAMETER['False_Northing',10000000],PARAMETRE['Central_Meridian',147],PARAMETER[''Scale ,0.9996],PARAMETER['Latitude_Of_Origin',0],UNIT['Meter',1]]" elif string.upper(OutCoSys) == "56": OutCoSys = "PROJCS['GDA_1994_MGA_Zone_56',GEOGCS['GCS_GDA_1994' ,DATUM['D_GDA_1994',SPHEROID['GRS_1980',6378137,298.257222101]],PRIMEM['Greenwich',0],UNIT['Degré',0.0174532925199432 95]],PROJECTION['Transverse_Mercator'],PARAMETRE['False_Easting',500000],PARAMETRE['False_Northing',10000000],PARAMETRE['Central_Meridian',153],PARAMETRE['Scale_Factor',0.9996],PARAMETRE[' Latitude_Of_Origin',0],UNIT['Meter',1]]" else: print "Unknown coordonner system" OutCoSys = "" sinon os.path.exists(ShapeFile): arcpy.CreateFeatureclass_management(ShapePath,ShapeName,"POLYLINE" ,"","DISABLED","ENABLED",OutCoSys) arcpy.AddField_management(ShapeFile,"oFile","TEXT") arcpy.AddField_management(ShapeFile,"FileName","TEXT") arcpy.AddField_management(ShapeFile,"RefStat ","TEXT") LCur = arcpy.InsertCursor(ShapeFile,OutCoSys) pour DPath, DName, FNames dans os.walk(InFolder): imprime DPath pour ThisFile dans FNames: FName, FExt = os.path.splitext(ThisFile) si (FExt.lower() == '.coo'): LArray = arcpy.Array() NewLine = LCur.newRow() FirstPoint = 1 avec open(DPath + "" + ThisFile) comme InFile : pour TextIn dans InFile : Stext = TextIn.split(" ") if len(Stext) == 4: pX = float(Stext[0]) pY = float(Stext[1]) pZ = float(Stext[2]) ThisPoint = arcpy.Point(pX,pY,pZ) LArray.add(ThisPoint) print "Points done" PolyLine = arcpy.Polyline(LArray,OutCoSys,True) print ("oFile : " + FName [0:len(FName)-3]) NewLine.setValue("oFile",FName[0:len(FName)-3]) NewLine.setValue("FileName",ThisFile) NewLine.shape = PolyLine LCur.insertRow( NewLine) de la NewLine de la LCur

Il utilise un curseur d'insertion sur une classe d'entités pour écrire des lignes directement…


Arcpy crée une polyligne par champs csv

Avec ce code, je crée une polyligne en utilisant le champ de coordonnées du tableau par csv :

Mais comment puis-je insérer l'adresse du champ avec les coordonnées du tableau dans Polyline?

par VinceAngelo

Remarque : posté sur GIS Stack Exchange, mais mis en attente là-bas car pas clair.

Il y a plusieurs aspects déroutants à ce poste. Tout d'abord, le conflit entre l'entrée apparente des degrés décimaux géographiques (bien que dans l'ordre inverse - à la place de ) et la variable spatref_epsg (qui affirme un système de coordonnées projetées sur la mer Caspienne, qui est loin du Colorado central impliqué par -105,39). De plus, votre schéma d'indentation est erroné tel que publié ici, car la boucle for n'est pas à l'intérieur du avec lequel traite le fichier d'entrée (la réponse sur laquelle cette nouvelle question est basée a une indentation correcte). Vous semblez également vouloir utiliser le premier champ du fichier CSV, mais insérer uniquement le champ géométrique dans le fichier de formes. Enfin, la requête insertRow accepte un tableau de lignes, mais vous ne fournissez pas de paramètre de tableau.


Eigenschaften

Renvoie une représentation Esri JSON de la géométrie sous forme de chaîne.

La chaîne renvoyée peut être convertie en dictionnaire à l'aide de la fonction Python json.loads.

Renvoie la représentation binaire bien connue (WKB) pour la géométrie OGC. Il fournit une représentation portable d'une valeur géométrique sous la forme d'un flux contigu d'octets.

Renvoie la représentation textuelle connue (WKT) pour la géométrie OGC. Il fournit une représentation portable d'une valeur géométrique sous forme de chaîne de texte.

Toutes les vraies courbes de la géométrie seront densifiées en courbes approximatives dans la chaîne WKT.

L'aire d'une entité surfacique. Il est égal à zéro pour tous les autres types d'entités.

Le véritable centroïde s'il se trouve dans ou sur l'entité, sinon, le point d'étiquette est renvoyé.

L'étendue de la géométrie.

Le premier point de coordonnées de la géométrie.

Une chaîne délimitée par des espaces des paires de coordonnées du rectangle à enveloppe convexe.

Renvoie True si le nombre de pièces pour cette géométrie est supérieur à un.

Le point où se trouve l'étiquette. Le labelPoint est toujours situé dans ou sur une entité.

La dernière coordonnée de l'entité.

La longueur de l'entité linéaire. Il est égal à zéro pour les types d'entités point et multipoint.

La longueur 3D de l'entité linéaire. Il est égal à zéro pour les types d'entités point et multipoint.

Le nombre de pièces géométriques pour la fonction.

Le nombre total de points pour l'entité.

La référence spatiale de la géométrie.

Le centre de gravité d'une entité.

Le type de géométrie : polygone, polyligne, point, multipoint, multipatch, cote ou annotation.


Syntaxe

Jeu de données d'entité polyligne en entrée à convertir en raster.

Champ utilisé pour affecter des valeurs au raster en sortie.

Il peut s'agir de n'importe quel champ de la table attributaire du jeu de classes d'entités en entrée.

Jeu de données raster en sortie à créer.

Lorsque vous n'enregistrez pas dans une géodatabase, spécifiez .tif pour un format de fichier TIFF, .CRF ​​pour un format de fichier CRF, .img pour un format de fichier ERDAS IMAGINE ou aucune extension pour un format raster Esri Grid.

Méthode permettant de déterminer comment la cellule se verra attribuer une valeur lorsque plusieurs entités se trouvent dans une cellule.

  • MAXIMUM_LENGTH —L'entité la plus longue qui couvre la cellule déterminera la valeur à affecter à la cellule.
  • MAXIMUM_COMBINED_LENGTH —S'il y a plusieurs entités dans une cellule avec la même valeur, les longueurs de ces entités seront combinées. La caractéristique combinée avec la longueur la plus longue dans la cellule déterminera la valeur à attribuer à la cellule.

Ce champ est utilisé pour déterminer quelle caractéristique doit avoir la préférence sur une autre caractéristique qui tombe sur une cellule. Lorsqu'elle est utilisée, la caractéristique avec la priorité positive la plus élevée est toujours sélectionnée pour la conversion, quel que soit le type d'affectation de cellule choisi.

Taille de cellule du raster en sortie en cours de création.

Ce paramètre peut être défini par une valeur numérique ou obtenu à partir d'un jeu de données raster existant. Si la taille de cellule n'a pas été explicitement spécifiée comme valeur de paramètre, la valeur de taille de cellule d'environnement est utilisée si elle est spécifiée, sinon certaines règles supplémentaires sont utilisées pour la calculer à partir des autres entrées. Voir l'utilisation pour plus de détails.


Verwendung

Cet outil génère l'OIS en fonction de trois catégories de conception de pente. Les catégories de conception de pente sont séparées par la classe de performance d'un aéronef à rotor. Les catégories de conception de pente seront modifiées par cet outil, que les opérations de vol se déroulent de jour ou de nuit.

Le paramètre Caractéristiques de sécurité en entrée doit être activé pour z et avoir un système de coordonnées verticales défini.

Pour créer un fichier JSON pour le paramètre Custom JSON File, utilisez le fichier CustomizeOIS.exe qui fait partie du package de données ArcGIS Aviation disponible sur My Esri .

Si vous sélectionnez l'option Surface courbe pour le paramètre Forme de surface, vous devez fournir des entités polylignes dans le paramètre Entités trajectoire de vol en entrée pour que la surface suive.

Les outils OIS sont flexibles et acceptent une variété de types de classes d'entités en entrée et en sortie. Pour plus d'informations, consultez les schémas d'entrée et de sortie OIS.

L'unité de mesure du paramètre Clearway Length est la même que l'unité de mesure du paramètre Input Safety Area Features.


Veri Dönüşüm (Conversions de données)

Format_Donusum dizininde yer alan bu veri setlerini işletim sisteminde Windows gezgini ile incelediğinizde tek bir dosya ile temsil edildiğini ancak ArcCatalog ortamında incelediğinizde ise bir dataset yapısinizında temsil KML ve DWG dosyaları farklı geometrik özelliklerin yer aldığı bir veri koleksiyon yapısına sahiptir. Bu dosyaların yapısında nokta, çizgi, alan gibi farklı geometrik özellikler yer alır. DWG dosyasının içeriğini AutoCAD yazılımı ile görebilir ve yönetebilirsiniz. KML dosyasının içeriğini ise Google Earth ortamında görüntüleyebilir veya yönetebilirsiniz. ArcGIS ortamında bu verilerin veri özelliklerini görüntüleyebilir ancak bu format yapısında veri güncellemesi yapamazsınız. Bu yüzden bu veri formatlarının ArcGIS veri formatı olan Shapefile formatında dönüştürülmesi gereklidir.

Format KMLını Format Shapefileına dönüştürmek için şu adımları izleyiniz :

  • Başlat (Démarrer) > Tüm Programlar (Tous les programmes) > ArcGIS programını mouse ile seçerek ArcCatalog arayüzünü açınız. Aktif hâle gelen ArcCatalog Catalogue Tree Penceresinde yer alan Format_Donusum dizini mouse ile seçiniz.
  • Contenu bölümünde listelenen Ada.Kml data setini çif klik yapınız. Ada.kml data seti içerisinde yer alan Ada Polygon geometrisi üzerinde mouse'un sağ tuşuna basınız. Exporter > vers Shapefile (unique) fonksiyonunu seçiniz. Aktif hâle gelen Feature Class to Shapefile penceresinde Output Folder’ı Format_Donusum dizini olarak set ediniz ve OK butonuna basarak işlemi sonlandırınız.
  • Shapefile formatında dönüştürdüğünüz ve Format_Donusum dizini içerisinde yer alan BinaPolygon.shp ve AdaPolygon.shp dosyalarını ArcCatalog arayüzünde görüntüleyiniz.

Format DWGını Format Shapefileına dönüştürmek için şu adımları izleyiniz :

  • Shapefile formatında dönüştürdüğünüz ve Format_Donusum dizini içerisinde yer alan BinaPolygon.shp ve AdaPolygon.shp dosyalarını ArcCatalog arayüzünde görüntüleyiniz
  • Contenu bölümünde écoutelenen Yol_Orta.dwg datasetini mouse ile çif klik yapınız. Yol_Orta.dwg dataseti içerisinde yer alan Polyline geometrisi üzerinde mouse'un sağ tuşuna basınız. Exporter > vers Shapefile (unique) fonksiyonunu seçiniz.
  • Aktif hâle gelen Feature Class to Shapefile penceresinde Output Folder’ı Format_Donusum dizini olarak set ediniz ve OK butonuna basarak işlemi sonlandırınız.
  • Format DGW et format de fichier Shapefile dans le format Format_Donusum dizini içerisinde yer alan Yol_Orta_dwg_Polyline.shp dosyasını ArcCatalog arayüzünde görüntüleyiniz. Catalogue Arbre penceresinde listelenen Yol_Orta_dwg_Polyline.shp dosyası üzerinde mouse'un sağ tuşuna basınız. Renommez fonksiyounu seçiniz. Katmanın adını Yol_Orta.shp olarak değiştiriniz.

Format Shapefile Shapenı format DWGWGna dönüştürmek için şu adımları izleyiniz :

  • Contenu penceresinde écoutelenen Ada_Polygon.shp dosyası üzerinde mouse'un sağ tuşuna basınız. Exporter > vers CAD fonksiyounu seçiniz.
  • Aktif hâle gelen Export to CAD penceresinde Output Type’ı DWG_R2010 olarak set ediniz. Format de fichier de sortie_Donusum olarak set ediniz. Format DWGında dönüştüreceğiniz dosya ismini Ada_CAD.DWG olarak değiştiriniz. Bu işlem ile KML formatından Shapefile formatında dönüştürdüğünüz veriyi Shapefile formatından DWG formatına dönüşümünü uygulamış oldunuz. Aynı işlemi BinaPolygon.shp dosyası içinde uygulayınız.
  • Exporter vers CAD penceresinde yer alan Type de sortie seçeneklerini inceleyiniz. Shapefile format Shapenı Type de sortie bölümünde listelenen istediğiniz bir CAD formatını seçerek dönüşüm işlemini gerçekleştirebilirsiniz.

Format Shapefile Shapenı format KMLına dönüştürmek için şu adımları izleyiniz :

  • ArcCatalog Menu Bar’da yer alan Personnaliser > Extensions fonksiyonunu seçiniz. Aktif hâle gelen Extensions penceresinde écoutelenen Interopérabilité des données eklentisinin çekini atınız ve Fermer butonuna basarak pencereyi kapatınız. Daha sonra Standart Toolbar'da yer alan ArcToolbox fonksiyounu seçiniz. Atif hâle gelen ArcToolbox penceresinde yer alan Data Interoperability Tools > Quick Export fonksiyounu seçiniz.
  • Exportation rapide penceresinde Input Layer’ınızı Aydınlatma.shp olarak set ediniz. Ensemble de données de sortie için butonuna basınız.
  • Spécifiez la destination des données penceresinde Format : Google Erath KML olarak set ediniz. Ensemble de données : Format_Donusum olarak belirledikten sonra dönüşüm yapacağınız KML dosya adını Aydinlatma.kml olarak belirleyiniz. OK butonlarına basarak işlemi sonlandırınız.
  • Bu işlemler ile Shapefile formatından KML formatına dönüşümünü gerçekleştirdiğiniz Aydınlatma.kml dosyasını ve diğer (Bina ve Ada) KML dosyalarını Google Earth programında görüntüleyiniz.

Classe d'entités, GeoDatabase içerisinde veya Ensemble de données d'entités içinde mekânsal veriyi Nokta, Çizgi ve Alan özellik tiplerinde depolayan vektörel bir veri formatıdır. Metrik bir projeksiyon sistemine sahip verileriniz alan değeri m 2 cinsinden, çizgi özellik tipinde yer alan verilerin uzunluk değeri meter cinsinden otomatik olarak Feature Class veri formatının veritabanında hesaplanaraknda tullongarak Area vea

Format de fichier de formeını Format de classe d'entitésına dönüştürmek için şu adımları izleyiniz :

  • ArcCatalog Catalogue Tree Penceresinde yer alan Format_Donusum dizini mouse ile seçiniz. Contenu penceresinde mouse'un sağ tuşuna basınız. Nouvelle > fichier de géodatabase fonksiyonunu seçiniz.
  • Açılan Personal Geodatabase adını Ankara olarak set ediniz. Format_Donusum dizini altında yer alan tüm Shapefile dosyalarını Shift tuşuna basarak seçiniz. Seçili olan katmanların üzerinde mouse'un sağ tuşuna basınız. Exporter > vers la géodatabase (multible) fonksiyonu seçiniz. Aktif hâle gelen Classe d'entités vers la géodatabase penceresinde Géodatabase en sortie’ı Ankara.mdb olarak set ediniz ve OK butonuna basarak işlemi sonlandırınız.
  • Contenu penceresinde listelenen Ankara Geodatabase üzerinde mouse ile çift klik yaparak içerisinde yer alan Feature Class veri formatlarını ve veritabanı bilgilerini inceleyiniz.

Excel ortamından X ve Y koordinat değerleri okutularak nokta özellik tipinde bir Shapefile oluşturmak için şu adımları izleyiniz :


Comme indiqué ici, "Chaque polyligne P résultante est orientée de telle sorte que pour deux points consécutifs p et q dans P, le vecteur normal de la ou des faces contenant le segment pq, le vecteur pq et le vecteur orthogonal du plan soit un orthogonal direct base. Le vecteur normal de chaque face est choisi pour pointer du côté de la face où sa séquence de sommets est vue dans le sens inverse des aiguilles d'une montre."

L'orientation des polylignes dépend donc de l'orientation du plan et des faces du maillage.


Comment créer des profils topographiques dans ArcGIS avec des coordonnées x,y et les tracer avec des exemples d'emplacements projetés en Python

J'ai reçu beaucoup de données de refroidissement sur zircon (U-Th)/He ces dernières semaines de mon projet South Lunggar, et j'ai placé ces données dans un contexte structurel approprié pour l'interprétation. Cela implique de dessiner des sections transversales et de projeter mes emplacements d'échantillons sur ces sections transversales, ce qui nécessite un profil topographique (dessiné sans exagération verticale) qui a des coordonnées géographiques ou projetées appropriées. Bien que ce soit une tâche que la plupart des géologues (en particulier les types structure/tectonique) devront faire à un moment donné, il n'y a pas beaucoup d'informations disponibles pour le faire avec des outils modernes.

Obtenir un profil topo géoréférencé est un peu pénible. Cela devrait être facile de le faire simplement dans Arc, mais ce n'est pas le cas. La projection de points est moins pénible, même si elle demande encore un peu de travail. Si quelqu'un d'autre connaît un moyen plus rapide de le faire, j'aimerais le savoir, alors partagez-le !

Je fais cela dans ArcGIS 10, cela nécessite également XToolsPro, qui coûte nominalement de l'argent bien que sans payer le programme fonctionne toujours après la période d'essai, et je pense qu'il fonctionne pour les versions les plus récentes d'Arc. J'utilise également Python (avec matplotlib) pour effectuer le traçage. Cela pourrait être fait dans MATLAB très facilement, pour ceux qui ont une copie.

Partie 1 : Générer le profil topographique

Étape 1 : faire la ligne

Créer un fichier de formes polyligne dans ArcToolbox

Modifiez la ligne dans ArcMap et tracez la ligne.

Il serait probablement utile d'avoir le DEM chargé.

Étape 2 : Créez un raster à partir de la ligne

Dans ArcToolbox, –> Outils de conversion –> vers raster –> polyligne vers raster

Il semble raisonnable d'utiliser la même taille de cellule que votre DEM, mais vous n'êtes probablement pas obligé de le faire.

Étape 3 : Faire des points à partir de chaque cellule du raster

Dans ArcToolbox, –> Outils de conversion –> De raster –> Raster vers point

Assurez-vous d'entrer le raster de ligne, pas le DEM.

Étape 4 : Obtenir les valeurs d'altitude pour les points (ajouter à la table attributaire)

ArcToolbox –> Outils Spatial Analyst –> Extraction –> Extraire les valeurs en points

Étape 5 : Obtenez les coordonnées X,Y pour les points (ajoutez également à la table attributaire)

XToolsPro –> Opérations de table –> Ajouter les coordonnées X,Y,Z

J'aime ajouter les coordonnées UTM et Lon/Lat (WGS84) à ma table attributaire. Cela nécessite de faire l'opération deux fois, ce qui est trivial. Dans tous les cas, vous avez besoin d'une sorte de système de coordonnées projetées pour pouvoir tracer le profil avec des mètres sur les deux axes, donc UTM est bon.

Étape 6 : Calculez la distance le long du profil de chaque point

Ouvrez le fichier .dbf (essentiellement la table attributaire) du fichier de formes de points dans votre tableur préféré et trouvez la distance depuis le début pour chaque point à l'aide du théorème de Pythagore. Pour plus de sécurité, enregistrez ce fichier en tant que nouveau fichier de feuille de calcul au lieu d'enregistrer le fichier .dbf.

Pour le tracer avec le code que je vais montrer ci-dessous, exportez le fichier au format .csv et supprimez la ligne d'en-tête, de sorte qu'il ne s'agisse que de colonnes de nombres.

Partie 2 : Projeter les emplacements des échantillons sur la section transversale

Cela suppose que vous ayez une feuille de calcul contenant tous vos échantillons avec une sorte de coordonnées X,Y,Z. Si vous n'avez que X et Y, vous pouvez obtenir Z avec l'étape des valeurs en points décrite à l'étape 4 après avoir créé un fichier de formes à partir de la feuille de calcul.

Étape 1 : importer des exemples de données dans ArcMap

Dans ArcMap, Fichier –> Ajouter des données –> Ajouter des données XY

Cela tracera les points comme des « événements » sans qu'ils aient les attributs appropriés pour continuer, vous devez donc…

Étape 2 : Transformez les points en un fichier de formes

Cliquez avec le bouton droit sur l'exemple de fichier dans la table des matières d'ArcMap, accédez à Données -> Exporter les données et créez un fichier de formes à partir de celui-ci.

Étape 3 : ajoutez les coordonnées UTM au fichier de formes (si elles ne sont pas encore là)

Étape 4 : Projeter les points sur la section transversale

Il s'agit essentiellement de trouver la distance le long de la section des points. Il suppose que les points se projetteront vers le point le plus proche du profil, et non le long de la direction (si votre ligne de coupe n'est pas perpendiculaire à la direction).

Tout d'abord, recherchez la ligne la mieux ajustée des coordonnées UTM Est et Nord à partir de votre ligne de coupe. Je l'ai fait en les traçant dans Excel et en ajustant une ligne de tendance. Cette ligne aura la forme y = mx+b.

Ensuite, ouvrez le fichier .dbf à partir de votre exemple de fichier de formes dans Excel.

Maintenant, projetez un échantillon de l'emplacement (c,d) sur la section transversale, de sorte que la projection soit en (x,y) :

Ensuite, calculez la distance le long de la projection pour ce point en utilisant le théorème de Pythagore comme à l'étape 6 ci-dessus.

Enfin, exportez le fichier au format .csv et supprimez la ligne d'en-tête, si vous en avez une.

Partie 3 : Tout tracer

J'ai utilisé matplotlib de Python pour créer ces tracés, car je travaille lentement pour passer de MATLAB à Python. Au lieu de descriptions étape par étape de la façon de faire les choses, je vais simplement publier un extrait de mon code, qui devrait être suffisamment commenté pour que tout utilisateur Python en comprenne l'essentiel :


Création, test et application d'un modèle SIG de coût des déplacements routiers pour la Roumanie

La simulation des fonctionnalités du réseau routier est aujourd'hui primordiale : elle permet de comprendre l'architecture du réseau et l'accessibilité des lieux de manière rapide et efficace. Notre méthode intègre différents facteurs d'impédance de déplacement - tels que les limitations de vitesse légales, la morphologie, la qualité et la hiérarchie de l'infrastructure réseau. Les tests montrent des caractéristiques similaires à celles des plates-formes professionnelles de planification d'itinéraires, ce qui nous permet d'utiliser ce modèle dans d'autres applications et de le proposer comme méthode pour d'autres réseaux. Notre application dans le domaine de l'accessibilité touristique a montré des résultats intéressants.

La vitesse moyenne d'atteinte des destinations de tourisme d'affaires joue un certain rôle dans le développement des destinations, même si elle est encore difficile à estimer. Certes, l'application du modèle à des réseaux routiers plus contrastés montrerait des différenciations spatiales critiques.

Mots clés: fonctionnalités du réseau routier, facteurs d'impédance de circulation, planificateur d'itinéraire


Utilisation d'autres représentations non cartographiques des flux

D'autres sur ce site ont suggéré d'utiliser des diagrammes alternatifs à la carte réelle pour représenter les flux (juste cartographier les origines et les destinations d'une autre manière que leur emplacement géographique réel). Des exemples en sont soit des visualisations circulaires (comme celle produite par Circos), des diagrammes en arc (voir cet exemple sur Protovis, on les appelle aussi kriskogrammes (Xiao & Chun, 2009)), ou des cartes thermiques matricielles (voici un autre exemple tiré de site Web de Protovis). Une autre option serait d'utiliser un certain type de mise en page de réseau automatisée pour identifier les modèles dans les flux (tels que ceux capables de Graphviz). Outre Graphviz, il semble que Gephi, la bibliothèque python NetworkX et certaines bibliothèques R soient également des outils populaires (voir cette réponse sur le site de statistiques).

Les bibliothèques que je cite sont plutôt sympas car elles ont également développé des visualisations interactives. Voici un exemple avec un style similaire aux graphiques circulaires (mais pas circulaires !). Voici une autre visualisation interactive utilisant certaines des techniques de distorsion de ligne discutées précédemment, le placement du réseau (qui semble similaire aux cartogrammes circulaires de Dorling) ainsi que d'autres résumés statistiques utiles (j'ai vu ces deux exemples à l'origine sur le blog de l'esthétique de l'information).

D'autres ressources que je pense sont utiles sont le logiciel et les articles provenant du laboratoire d'exploration de données spatiales et d'analyse visuelle. De plus, la modélisation de la demande de déplacements criminels dans le programme CrimeStat est une introduction en douceur aux techniques de régression applicables pour de telles données de flux. L'un ou l'autre de ces outils peut vous permettre d'identifier des corrélations intéressantes dans les modèles de flux avec d'autres informations géographiques. Un autre endroit pour peut-être recevoir une inspiration utile pour afficher graphiquement les données ou l'analyse statistique serait un numéro récent du Journal of Computational and Graphical Statistics, Volume 20 Issue 2, sur l'examen des statistiques d'arrivée/départ des vols pour les transporteurs commerciaux aux États-Unis. de 1987 à 2008 (si vous êtes intéressé par le traitement des mégadonnées, cela vaudrait également la peine d'être examiné). Tous les articles sont gratuits et des affiches sont associées à chaque article.

En fin de compte, les données et le support dicteront dans quelle mesure certaines de ces techniques fonctionnent pour réduire l'encombrement visuel qui accompagne les données de flux. J'espère que c'est un endroit utile pour trouver des idées sur la façon de traiter ce problème de visualisation. Si vous affinez davantage votre question sur ce que vous voulez accomplir, alors d'autres peuvent donner des commentaires utiles sur les implémentations programmatiques réelles (si quelque chose n'est pas déjà disponible).


  • Corcoran, Jonathan, Prem Chhetri et Robert Stimson. (2009) Utilisation de statistiques circulaires pour explorer la géographie du trajet domicile-travail. Articles en sciences régionales 88(1): 119-132.
  • Phan, Doantam, Ling Xiao, Ron Yeh, Pat Hanrahan et Terry Winograd. (2005) Disposition de la carte de flux. Dans Visualisation de l'information, 2005. INFOVIS 2005. Symposium IEEE: 219�.| PDF ici
  • Rae, Alasdair. (2009) Des données d'interaction spatiale à l'information d'interaction spatiale ? Géovisualisation et structures spatiales de la migration à partir du recensement britannique de 2001. Informatique, environnement et systèmes urbains 33(3) : 161-178.|PDF ici
  • Ratti, Carlo, Stanislav Sobolevsky, Francesco Calabrese, Clio Andris, Jonathan Reades, Mauro Martino, Rob Claxton & Steven H. Strogatz. (2010) Redessiner la carte de la Grande-Bretagne à partir d'un réseau d'interactions humaines. PLoS UN 5(12). L'article est en accès libre à partir du lien


Voir la vidéo: ESRI ArcGIS Convert Polylines to Polygons, Two easy methods