Suite

Comment trouver la distance entre le début de la ligne et le début du raster avec arcpy/python ?


Je crée un outil de script python pour ArcGIS Desktop 10.1 pour extraire des profils. J'utilise le profil de pile pour extraire des valeurs dans une table, mais le profil de pile ne génère que des valeurs où la ligne et le raster se chevauchent.

Ma solution pour créer des profils qui commenceront au début de ma ligne est de trouver la distance entre le début de la ligne et le début du raster, puis de décaler l'axe des x. Mais comment trouver cette distance (marquée en bleu sur l'image ci-dessous) avec arcpy/python ?

Mise à jour : la solution doit fonctionner avec un jeu de données raster à virgule flottante


Ma suggestion serait d'utiliser l'outil Raster en polygone (Conversion) sur chacun des deux rasters, en utilisant une sortie non simplifiée. Vous pouvez ensuite utiliser chacune des classes d'entités résultantes pour effacer le chevauchement des entités linéaires d'origine et calculer la longueur des portions d'extrémité restantes.


Les outils de distance de chemin sont comparables aux outils de distance de coût dans la mesure où ils déterminent tous deux le coût de déplacement cumulé minimum depuis ou vers une source pour chaque emplacement sur une surface raster. Cependant, les outils de distance de chemin ajoutent plus de complexité à l'analyse en étant capables de s'adapter à la distance de surface réelle ainsi qu'à d'autres facteurs horizontaux et verticaux.

Les données source en entrée peuvent être une classe d'entités ou un raster.

Lorsque les données source en entrée sont un raster, l'ensemble de cellules source se compose de toutes les cellules du raster source qui ont des valeurs valides. Les cellules qui ont des valeurs NoData ne sont pas incluses dans l'ensemble source. La valeur 0 est considérée comme une source légitime. Un raster source peut être créé à l'aide des outils d'extraction.

Lorsque les données source en entrée sont une classe d'entités, les emplacements source sont convertis en interne en raster avant d'effectuer l'analyse. La résolution du raster peut être contrôlée avec l'environnement Cell Size. Par défaut, si aucun autre raster n'est spécifié dans l'outil, la résolution sera déterminée par la plus courte de la largeur ou de la hauteur de l'étendue de l'entité en entrée, dans la référence spatiale en entrée, divisée par 250.

Lors de l'utilisation de données d'entité pour les données source d'entrée, il faut faire attention à la façon dont la taille de cellule en sortie est gérée lorsqu'elle est grossière, par rapport aux détails présents dans l'entrée. Le processus de rastérisation interne utilise le même type d'affectation de cellule par défaut que l'outil Entité vers raster, qui est la méthode du centre de cellule. Cela signifie que les données non situées au centre de la cellule ne seront pas incluses dans la sortie source rastérisée intermédiaire, elles ne seront donc pas représentées dans les calculs de distance. Par exemple, si vos sources sont une série de petits polygones (tels que des emprises de bâtiment) qui sont petits par rapport à la taille de la cellule en sortie, il est possible que seuls quelques-uns tombent sous les centres des cellules raster en sortie, causant apparemment la plupart des les autres se perdent dans l'analyse.

Pour éviter cette situation, comme étape intermédiaire, vous pouvez pixelliser les entités en entrée directement avec l'outil Entité vers raster et définir le paramètre Champ. Utilisez ensuite la sortie résultante comme entrée de l'outil de distance particulier que vous souhaitez utiliser. Vous pouvez également sélectionner une petite taille de cellule pour capturer la quantité appropriée de détails à partir des entités en entrée.

Pour calculer l'allocation, les emplacements source peuvent avoir une valeur associée, qui peut être spécifiée par le paramètre de champ Source. Si la source d'entrée est un raster d'entiers, le champ par défaut est VALUE . S'il s'agit d'une entité, ce sera le premier champ entier de la table attributaire. Si les données source en entrée sont un raster à virgule flottante, un paramètre raster de valeur entière doit être spécifié.

Les cellules avec NoData agissent comme des barrières dans les outils de distance de chemin. La distance de coût des cellules derrière les valeurs NoData est calculée par le coût cumulé nécessaire pour contourner la barrière NoData. Tout emplacement de cellule auquel est affecté NoData sur l'un des rasters en entrée recevra NoData sur tous les rasters en sortie.

Si les données source en entrée et le raster de coût sont des étendues différentes, l'étendue en sortie par défaut est l'intersection des deux. Pour obtenir une surface de distance de coût pour toute l'étendue, choisissez l'option Union des entrées dans les paramètres d'environnement Etendue en sortie.

La sortie de l'outil Aspect peut être utilisée comme entrée pour le raster horizontal en entrée .

La distance maximale est spécifiée dans les mêmes unités de coût que celles du raster de coût.

Pour le raster de distance en sortie, la distance de moindre coût (ou distance de coût cumulé minimum) d'une cellule depuis ou vers un ensemble d'emplacements source est la limite inférieure des distances de moindre coût entre la cellule et tous les emplacements source.

Les valeurs par défaut des modificateurs de facteur horizontal sont les suivantes :

Les valeurs par défaut des modificateurs de facteur vertical sont les suivantes :

Les caractéristiques de la source, ou les déplacements depuis ou vers une source, peuvent être contrôlés par des paramètres spécifiques. Le paramètre Multiplicateur de coût de la source spécifie le mode de déplacement ou l'amplitude à la source, Le coût de départ de la source définit le coût de départ avant le début du mouvement, Le taux de résistance de la source est un ajustement dynamique prenant en compte l'impact du coût cumulé, par exemple, simulant combien le randonneur se fatigue et la capacité de la source définit le coût qu'une source peut assimiler avant d'atteindre sa limite. La direction de déplacement identifie si le moteur commence à une source et se déplace vers des emplacements non source ou commence à des emplacements non source et revient à une source.

Si l'un des paramètres de caractéristiques source est spécifié à l'aide d'un champ, la caractéristique source sera appliquée source par source, en fonction des informations contenues dans le champ donné pour les données source. Lorsqu'un mot-clé ou une valeur constante est donné, il sera appliqué à toutes les sources.

Si le coût de départ source est spécifié et la direction de déplacement est Déplacement depuis la source , les emplacements source sur la surface de distance de coût en sortie seront définis sur la valeur Coût de départ source, sinon les emplacements source sur la surface de distance de coût en sortie seront définis sur zéro.

Cet outil prend en charge le traitement parallèle. Si votre ordinateur dispose de plusieurs processeurs ou de processeurs à plusieurs cœurs, de meilleures performances peuvent être obtenues, en particulier sur des ensembles de données plus volumineux. La rubrique d'aide Traitement parallèle avec Spatial Analyst contient plus de détails sur cette fonctionnalité et sur la manière de la configurer.

Lors de l'utilisation du traitement parallèle, des données temporaires seront écrites pour gérer les blocs de données en cours de traitement. L'emplacement par défaut du dossier temporaire sera sur votre lecteur C: local. Vous pouvez contrôler l'emplacement de ce dossier en configurant une variable d'environnement système nommée TempFolders et en spécifiant le chemin d'accès au dossier à utiliser (par exemple, E:RasterCache ). Si vous disposez de privilèges d'administrateur sur votre machine, vous pouvez également utiliser une clé de registre (par exemple, [HKEY_CURRENT_USERSOFTWAREESRIArcGISProRaster]).

Par défaut, cet outil utilisera 50 pour cent des cœurs disponibles. Si la taille des données d'entrée est inférieure à 5 000 par 5 000 cellules, moins de cœurs peuvent être utilisés. Vous pouvez contrôler le nombre de cœurs que l'outil utilise avec l'environnement de facteur de traitement parallèle.

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


Syntaxe

Les emplacements des sources d'entrée.

Il s'agit d'un raster ou d'un jeu de données d'entité qui identifie les cellules ou les emplacements par rapport auxquels la distance de coût cumulée la moins élevée pour chaque emplacement de cellule en sortie est calculée.

Pour les rasters, le type d'entrée peut être entier ou à virgule flottante.

Un raster définissant l'impédance ou le coût pour se déplacer de manière planimétrique à travers chaque cellule.

La valeur à chaque emplacement de cellule représente le coût par unité de distance pour se déplacer dans la cellule. Chaque valeur d'emplacement de cellule est multipliée par la résolution de la cellule tout en compensant également le mouvement diagonal pour obtenir le coût total de passage à travers la cellule.

Les valeurs du raster de coût peuvent être entières ou à virgule flottante, mais elles ne peuvent pas être négatives ou nulles (vous ne pouvez pas avoir de coût négatif ou nul).

Un raster définissant les valeurs d'altitude à chaque emplacement de cellule.

Les valeurs sont utilisées pour calculer la distance de surface réelle couverte lors du passage entre les cellules.

Définit le seuil que les valeurs de coût cumulé ne peuvent pas dépasser.

Si une valeur de distance de coût cumulé dépasse cette valeur, la valeur de sortie pour l'emplacement de la cellule sera NoData. La distance maximale définit l'étendue pour laquelle les distances de coût cumulé sont calculées.

La distance par défaut correspond au bord du raster en sortie.

Le raster de distance du chemin en sortie.

Le raster de distance de chemin de sortie identifie, pour chaque cellule, la distance de coût la moins cumulée, sur une surface de coût jusqu'aux emplacements source identifiés, tout en tenant compte de la distance de surface ainsi que des facteurs de surface horizontaux et verticaux.

Une source peut être une cellule, un ensemble de cellules ou un ou plusieurs emplacements d'entités.

Le raster en sortie est de type virgule flottante.

Un raster définissant la direction horizontale au niveau de chaque cellule.

Les valeurs du raster doivent être des nombres entiers compris entre 0 et 360, 0 degré représentant le nord ou vers le haut de l'écran et augmentant dans le sens des aiguilles d'une montre. Les zones plates doivent recevoir une valeur de -1. Les valeurs à chaque emplacement seront utilisées en conjonction avec le pour déterminer le coût horizontal encouru lors du passage d'une cellule à ses voisines.

L'objet Facteur horizontal définit la relation entre le facteur de coût horizontal et l'angle de déplacement relatif horizontal.

Il existe plusieurs facteurs avec des modificateurs parmi lesquels sélectionner qui identifient un graphique de facteur horizontal défini. De plus, un tableau peut être utilisé pour créer un graphique personnalisé. Les graphiques sont utilisés pour identifier le facteur horizontal utilisé dans le calcul du coût total d'emménagement dans une cellule voisine.

Dans les explications ci-dessous, deux acronymes sont utilisés : HF signifie horizontal factor, qui définit la difficulté horizontale rencontrée lors du passage d'une cellule à l'autre et HRMA signifie horizontal relative moving angle, qui identifie l'angle entre la direction horizontale d'une cellule et le sens de déplacement.

Indique que si le HRMA est inférieur à l'angle de coupe, le HF est mis à la valeur associée au facteur zéro sinon, il est à l'infini.

Établit que seul le mouvement vers l'avant est autorisé. Le HRMA doit être supérieur ou égal à 0 et inférieur à 90 (0 <= HRMA < 90). Si le HRMA est supérieur à 0 et inférieur à 45 degrés, le HF de la cellule est défini sur la valeur associée au facteur zéro. Si le HRMA est supérieur ou égal à 45 degrés, la valeur du modificateur de valeur latérale est utilisée. Le HF pour tout HRMA égal ou supérieur à 90 degrés est réglé sur l'infini.

Spécifie que le HF est une fonction linéaire du HRMA.

Spécifie que le HF est une fonction linéaire inverse du HRMA.

Identifie qu'un fichier de table sera utilisé pour définir le graphique de facteur horizontal utilisé pour déterminer les HF.

  • : établit le facteur horizontal utilisé lorsque le HRMA est égal à 0. Ce facteur positionne l'intersection y pour l'une des fonctions de facteur horizontal.
  • : définit l'angle HRMA au-delà duquel le HF sera réglé sur l'infini.
  • : établit la pente de la ligne droite utilisée avec les mots-clés de facteur horizontal HfLinear et HfInverseLinear. La pente est spécifiée sous la forme d'une fraction de la montée par rapport à la course (par exemple, 45 % de la pente est de 1/45, ce qui est entré sous la forme 0,02222).
  • : établit le HF lorsque le HRMA est supérieur ou égal à 45 degrés et inférieur à 90 degrés lorsque le mot-clé de facteur horizontal HfForward est spécifié.
  • inTable : identifie le nom de la table définissant le HF.

Un raster définissant les valeurs z pour chaque emplacement de cellule.

Les valeurs sont utilisées pour calculer la pente utilisée pour identifier le facteur vertical encouru lors du passage d'une cellule à l'autre.

L'objet Facteur vertical définit la relation entre le facteur de coût vertical et l'angle de déplacement relatif vertical (VRMA).

Il existe plusieurs facteurs avec des modificateurs parmi lesquels sélectionner qui identifient un graphique de facteur vertical défini. De plus, un tableau peut être utilisé pour créer un graphique personnalisé. Les graphiques sont utilisés pour identifier le facteur vertical utilisé dans le calcul du coût total d'emménagement dans une cellule voisine.

Dans les explications ci-dessous, deux acronymes sont utilisés : VF signifie vertical factor, qui définit la difficulté verticale rencontrée pour passer d'une cellule à l'autre et VRMA signifie vertical relative moving angle, qui identifie l'angle de pente entre le FROM ou la cellule de traitement. et la cellule TO.

Les définitions et paramètres de ceux-ci sont les suivants :

Spécifie que si le VRMA est supérieur à l'angle coupe-bas et inférieur à l'angle coupe-haut, le VF est réglé sur la valeur associée au facteur zéro sinon, il est à l'infini.

Indique que le VF est une fonction linéaire du VRMA.

Indique que le VF est une fonction linéaire inverse du VRMA.

Spécifie que le VF est une fonction linéaire du VRMA dans le côté négatif ou positif du VRMA, respectivement, et que les deux fonctions linéaires sont symétriques par rapport à l'axe VF (y).

Spécifie que le VF est une fonction linéaire inverse du VRMA dans le côté négatif ou positif du VRMA, respectivement, et que les deux fonctions linéaires sont symétriques par rapport à l'axe VF (y).

Identifie le VF comme la fonction basée sur le cosinus du VRMA.

Identifie le VF comme la fonction basée sur la sécante du VRMA.

Indique que le VF est la fonction basée sur le cosinus du VRMA lorsque le VRMA est négatif et la fonction basée sur la sécante du VRMA lorsque le VRMA est non négatif.

Spécifie que le VF est la fonction basée sur la sécante du VRMA lorsque le VRMA est négatif et la fonction basée sur le cosinus du VRMA lorsque le VRMA est non négatif.

Identifie qu'un fichier de table sera utilisé pour définir le graphique de facteur vertical utilisé pour déterminer les VF.

Les modificateurs des paramètres verticaux sont les suivants :

  • : établit le facteur vertical utilisé lorsque le VRMA est égal à zéro. Ce facteur positionne l'ordonnée à l'origine de la fonction spécifiée. Par définition, le facteur zéro n'est applicable à aucune des fonctions verticales trigonométriques (Cos, Sec, Cos_Sec ou Sec_Cos). L'ordonnée à l'origine est définie par ces fonctions.
  • — Définit l'angle VRMA en dessous duquel le VF sera réglé sur l'infini.
  • — Définit l'angle VRMA au-dessus duquel le VF sera réglé sur l'infini.
  • : établit la pente de la ligne droite utilisée avec les paramètres VfLinear et VfInverseLinear. La pente est spécifiée sous la forme d'une fraction de la montée par rapport à la course (par exemple, 45 % de la pente est de 1/45, ce qui est entré sous la forme 0,02222).
  • inTable : identifie le nom de la table définissant le VF.

Multiplicateur à appliquer aux valeurs de coût.

Permet de contrôler le mode de déplacement ou la magnitude à une source. Plus le multiplicateur est élevé, plus le coût de déplacement dans chaque cellule est élevé.

Les valeurs doivent être supérieures à zéro. La valeur par défaut est 1.

Le coût de départ à partir duquel commencer les calculs de coût.

Permet de spécifier le coût fixe associé à une source. Au lieu de commencer à un coût de zéro, l'algorithme de coût commencera par la valeur définie par source_start_cost .

Les valeurs doivent être égales ou supérieures à zéro. La valeur par défaut est 0.

Le taux de multiplication du coût cumulé pour déterminer l'ajustement de la résistance.

Ce paramètre simule l'augmentation de l'effort pour surmonter les coûts à mesure que le coût cumulé augmente. Ceci est utilisé pour modéliser la fatigue du voyageur. Le coût cumulatif croissant pour atteindre une cellule est multiplié par le taux de résistance et ajouté au coût pour passer dans la cellule suivante.

Plus le taux de résistance est élevé, plus le coût supplémentaire est ajouté pour atteindre la cellule suivante, qui est composé pour chaque mouvement ultérieur. Étant donné que le taux de résistance est similaire à un taux composé et que les valeurs de coût cumulé sont généralement très élevées, de petits taux de résistance sont suggérés, tels que 0,02, 0,005 ou même plus petits, en fonction des valeurs de coût cumulé.

Les valeurs doivent être égales ou supérieures à zéro. La valeur par défaut est 0.

Définit la capacité de coût pour le voyageur à partir d'une source.

Chaque source augmente jusqu'à la capacité spécifiée.

Les valeurs doivent être supérieures à zéro. La capacité par défaut est au bord du raster en sortie.

Valeur de retour

Raster de liaison retour de coût en sortie.

Le raster de liaison arrière contient des valeurs de 0 à 8, qui définissent la direction ou identifient la prochaine cellule voisine (la cellule suivante) le long du chemin de coût le moins cumulé à partir d'une cellule pour atteindre sa source de moindre coût, tout en tenant compte également de la distance de surface comme facteurs de surface horizontaux et verticaux.

Si le chemin doit passer dans le voisin de droite, la cellule se verra attribuer la valeur 1, 2 pour la cellule diagonale inférieure droite, et continue dans le sens des aiguilles d'une montre. La valeur 0 est réservée aux cellules sources.


Syntaxe

Les emplacements des sources d'entrée.

Il s'agit d'un raster ou d'un jeu de données d'entité qui identifie les cellules ou les emplacements par rapport auxquels la distance de coût cumulée la moins élevée pour chaque emplacement de cellule en sortie est calculée.

Pour les rasters, le type d'entrée peut être entier ou à virgule flottante.

Un raster définissant l'impédance ou le coût pour se déplacer de manière planimétrique à travers chaque cellule.

La valeur à chaque emplacement de cellule représente le coût par unité de distance pour se déplacer dans la cellule. Chaque valeur d'emplacement de cellule est multipliée par la résolution de la cellule tout en compensant également le mouvement diagonal pour obtenir le coût total de passage à travers la cellule.

Les valeurs du raster de coût peuvent être entières ou à virgule flottante, mais elles ne peuvent pas être négatives ou nulles (vous ne pouvez pas avoir de coût négatif ou nul).

Un raster définissant les valeurs d'altitude à chaque emplacement de cellule.

Les valeurs sont utilisées pour calculer la distance de surface réelle couverte lors du passage entre les cellules.

Un raster définissant la direction horizontale au niveau de chaque cellule.

Les valeurs du raster doivent être des nombres entiers compris entre 0 et 360, 0 degré représentant le nord ou vers le haut de l'écran et augmentant dans le sens des aiguilles d'une montre. Les zones plates doivent recevoir une valeur de -1. Les valeurs à chaque emplacement seront utilisées en conjonction avec le pour déterminer le coût horizontal encouru lors du passage d'une cellule à ses voisines.

L'objet Facteur horizontal définit la relation entre le facteur de coût horizontal et l'angle de déplacement relatif horizontal.

Il existe plusieurs facteurs avec des modificateurs parmi lesquels sélectionner qui identifient un graphique de facteur horizontal défini. De plus, un tableau peut être utilisé pour créer un graphique personnalisé. Les graphiques sont utilisés pour identifier le facteur horizontal utilisé dans le calcul du coût total d'emménagement dans une cellule voisine.

Dans les explications ci-dessous, deux acronymes sont utilisés : HF signifie horizontal factor, qui définit la difficulté horizontale rencontrée lors du passage d'une cellule à l'autre et HRMA signifie horizontal relative moving angle, qui identifie l'angle entre la direction horizontale d'une cellule et le sens de déplacement.

Indique que si le HRMA est inférieur à l'angle de coupe, le HF est mis à la valeur associée au facteur zéro sinon, il est à l'infini.

Établit que seul le mouvement vers l'avant est autorisé. Le HRMA doit être supérieur ou égal à 0 et inférieur à 90 (0 <= HRMA < 90). Si le HRMA est supérieur à 0 et inférieur à 45 degrés, le HF de la cellule est défini sur la valeur associée au facteur zéro. Si le HRMA est supérieur ou égal à 45 degrés, la valeur du modificateur de valeur latérale est utilisée. Le HF pour tout HRMA égal ou supérieur à 90 degrés est réglé sur l'infini.

Spécifie que le HF est une fonction linéaire du HRMA.

Spécifie que le HF est une fonction linéaire inverse du HRMA.

Identifie qu'un fichier de table sera utilisé pour définir le graphique de facteur horizontal utilisé pour déterminer les HF.

  • : établit le facteur horizontal utilisé lorsque le HRMA est égal à 0. Ce facteur positionne l'intersection y pour l'une des fonctions de facteur horizontal.
  • : définit l'angle HRMA au-delà duquel le HF sera réglé sur l'infini.
  • : établit la pente de la ligne droite utilisée avec les mots-clés de facteur horizontal HfLinear et HfInverseLinear. La pente est spécifiée sous la forme d'une fraction de la montée par rapport à la course (par exemple, 45 % de la pente est de 1/45, ce qui est entré sous la forme 0,02222).
  • : établit le HF lorsque le HRMA est supérieur ou égal à 45 degrés et inférieur à 90 degrés lorsque le mot-clé de facteur horizontal HfForward est spécifié.
  • inTable : identifie le nom de la table définissant le HF.

Un raster définissant les valeurs z pour chaque emplacement de cellule.

Les valeurs sont utilisées pour calculer la pente utilisée pour identifier le facteur vertical encouru lors du passage d'une cellule à l'autre.

L'objet Facteur vertical définit la relation entre le facteur de coût vertical et l'angle de déplacement relatif vertical (VRMA).

Il existe plusieurs facteurs avec des modificateurs parmi lesquels sélectionner qui identifient un graphique de facteur vertical défini. De plus, un tableau peut être utilisé pour créer un graphique personnalisé. Les graphiques sont utilisés pour identifier le facteur vertical utilisé dans le calcul du coût total d'emménagement dans une cellule voisine.

Dans les explications ci-dessous, deux acronymes sont utilisés : VF signifie vertical factor, qui définit la difficulté verticale rencontrée pour passer d'une cellule à l'autre et VRMA signifie vertical relative moving angle, qui identifie l'angle de pente entre le FROM ou la cellule de traitement. et la cellule TO.

Les définitions et paramètres de ceux-ci sont les suivants :

Spécifie que si le VRMA est supérieur à l'angle coupe-bas et inférieur à l'angle coupe-haut, le VF est réglé sur la valeur associée au facteur zéro sinon, il est à l'infini.

Indique que le VF est une fonction linéaire du VRMA.

Indique que le VF est une fonction linéaire inverse du VRMA.

Spécifie que le VF est une fonction linéaire du VRMA dans le côté négatif ou positif du VRMA, respectivement, et que les deux fonctions linéaires sont symétriques par rapport à l'axe VF (y).

Spécifie que le VF est une fonction linéaire inverse du VRMA dans le côté négatif ou positif du VRMA, respectivement, et que les deux fonctions linéaires sont symétriques par rapport à l'axe VF (y).

Identifie le VF comme la fonction basée sur le cosinus du VRMA.

Identifie le VF comme la fonction basée sur la sécante du VRMA.

Indique que le VF est la fonction basée sur le cosinus du VRMA lorsque le VRMA est négatif et la fonction basée sur la sécante du VRMA lorsque le VRMA est non négatif.

Spécifie que le VF est la fonction basée sur la sécante du VRMA lorsque le VRMA est négatif et la fonction basée sur le cosinus du VRMA lorsque le VRMA est non négatif.

Identifie qu'un fichier de table sera utilisé pour définir le graphique de facteur vertical utilisé pour déterminer les VF.

Les modificateurs des paramètres verticaux sont les suivants :

  • : établit le facteur vertical utilisé lorsque le VRMA est égal à zéro. Ce facteur positionne l'ordonnée à l'origine de la fonction spécifiée. Par définition, le facteur zéro n'est applicable à aucune des fonctions verticales trigonométriques (Cos, Sec, Cos_Sec ou Sec_Cos). L'ordonnée à l'origine est définie par ces fonctions.
  • — Définit l'angle VRMA en dessous duquel le VF sera réglé sur l'infini.
  • — Définit l'angle VRMA au-dessus duquel le VF sera réglé sur l'infini.
  • : établit la pente de la ligne droite utilisée avec les paramètres VfLinear et VfInverseLinear. La pente est spécifiée sous la forme d'une fraction de la montée par rapport à la course (par exemple, 45 % de la pente est de 1/45, ce qui est entré sous la forme 0,02222).
  • inTable : identifie le nom de la table définissant le VF.

Définit le seuil que les valeurs de coût cumulé ne peuvent pas dépasser.

Si une valeur de distance de coût cumulé dépasse cette valeur, la valeur de sortie pour l'emplacement de la cellule sera NoData. La distance maximale définit l'étendue pour laquelle les distances de coût cumulé sont calculées.

La distance par défaut correspond au bord du raster en sortie.

Raster de liaison retour de coût en sortie.

Le raster de liaison arrière contient des valeurs de 0 à 8, qui définissent la direction ou identifient la prochaine cellule voisine (la cellule suivante) le long du chemin de coût le moins cumulé à partir d'une cellule pour atteindre sa source de moindre coût, tout en tenant compte également de la distance de surface comme facteurs de surface horizontaux et verticaux.

Si le chemin doit passer dans le voisin de droite, la cellule se verra attribuer la valeur 1, 2 pour la cellule diagonale inférieure droite, et continue dans le sens des aiguilles d'une montre. La valeur 0 est réservée aux cellules sources.

Multiplicateur à appliquer aux valeurs de coût.

Permet de contrôler le mode de déplacement ou la magnitude à une source. Plus le multiplicateur est élevé, plus le coût de déplacement dans chaque cellule est élevé.

Les valeurs doivent être supérieures à zéro. La valeur par défaut est 1.

Le coût de départ à partir duquel commencer les calculs de coût.

Permet de spécifier le coût fixe associé à une source. Au lieu de commencer à un coût de zéro, l'algorithme de coût commencera par la valeur définie par source_start_cost .

Les valeurs doivent être égales ou supérieures à zéro. La valeur par défaut est 0.

Le taux de multiplication du coût cumulé pour déterminer l'ajustement de la résistance.

Ce paramètre simule l'augmentation de l'effort pour surmonter les coûts à mesure que le coût cumulé augmente. Ceci est utilisé pour modéliser la fatigue du voyageur. Le coût cumulatif croissant pour atteindre une cellule est multiplié par le taux de résistance et ajouté au coût pour passer dans la cellule suivante.

Plus le taux de résistance est élevé, plus le coût supplémentaire est ajouté pour atteindre la cellule suivante, qui est composé pour chaque mouvement ultérieur. Étant donné que le taux de résistance est similaire à un taux composé et que les valeurs de coût cumulé sont généralement très élevées, de petits taux de résistance sont suggérés, tels que 0,02, 0,005 ou même plus petits, en fonction des valeurs de coût cumulé.

Les valeurs doivent être égales ou supérieures à zéro. La valeur par défaut est 0.

Définit la capacité de coût pour le voyageur à partir d'une source.

Chaque source augmente jusqu'à la capacité spécifiée.

Les valeurs doivent être supérieures à zéro. La capacité par défaut est au bord du raster en sortie.

Valeur de retour

Le raster de distance du chemin en sortie.

Le raster de distance de chemin de sortie identifie, pour chaque cellule, la distance de coût la moins cumulée, sur une surface de coût jusqu'aux emplacements source identifiés, tout en tenant compte de la distance de surface ainsi que des facteurs de surface horizontaux et verticaux.

Une source peut être une cellule, un ensemble de cellules ou un ou plusieurs emplacements d'entités.

Le raster en sortie est de type virgule flottante.


Méthodes

La limite d'un polygone est une polyligne. La limite d'une polyligne est un multipoint, correspondant aux extrémités de la ligne. La limite d'un point ou d'un multipoint est un point ou un multipoint vide.

La distance de tampon est dans les mêmes unités que la géométrie qui est tamponnée.

Une distance négative ne peut être spécifiée que par rapport à une géométrie polygonale.

La géométrie du polygone tamponné.

Objet d'étendue utilisé pour définir l'étendue du découpage.

Une géométrie en sortie découpée à l'étendue spécifiée.

Une valeur booléenne de retour True indique que cette géométrie contient la deuxième géométrie.

La géométrie résultante. L'enveloppe convexe d'un seul point est le point lui-même.

Une valeur booléenne de retour True indique que les deux géométries se coupent dans une géométrie d'un type de forme inférieur.


2 réponses 2

Par angle entre deux points, je suppose que vous entendez l'angle entre deux vecteurs définis par des extrémités (et en supposant que le début est l'origine).

L'exemple que vous avez utilisé a été conçu autour d'une seule paire de points, la transposition n'étant utilisée que sur ce principe. Il est cependant suffisamment robuste pour fonctionner dans plus de 2 dimensions.

Votre fonction doit être vectorisée comme votre fonction de distance, car elle attend un certain nombre de paires de points (et nous ne considérons que des points à 2 dimensions).


1.5 L'histoire de R-spatial

Il y a de nombreux avantages à utiliser des packages spatiaux récents tels que nf, mais il est également important de connaître l'historique des capacités spatiales de R : de nombreuses fonctions, cas d'utilisation et matériel pédagogique sont contenus dans des packages plus anciens. Ceux-ci peuvent encore être utiles aujourd'hui, à condition de savoir où chercher.

Les capacités spatiales de R proviennent des premiers packages spatiaux en langage S (Bivand et Gebhardt 2000). Les années 1990 ont vu le développement de nombreux scripts S et une poignée de packages pour les statistiques spatiales. Des packages R sont nés de ceux-ci et, en 2000, il y avait des packages R pour diverses méthodes spatiales «analyse de la configuration des points, géostatistique, analyse de données spatiales exploratoire et économétrie spatiale», selon un article présenté à GeoComputation 2000 (Bivand et Neteler 2000). Certains d'entre eux, notamment spatial, géostat et splancs sont toujours disponibles sur CRAN (Rowlingson et Diggle 1993, 2017 Venables et Ripley 2002 Majure et Gebhardt 2016) .

Un article ultérieur dans R News (le prédécesseur de The R Journal) contenait un aperçu du logiciel de statistiques spatiales dans R à l'époque, dont une grande partie était basée sur un code antérieur écrit pour S/S-PLUS (Ripley 2001) . Cette vue d'ensemble décrit des packages pour le lissage spatial et l'interpolation, y compris akima et géoR (Akima et Gebhardt 2016 Ribeiro Jr et Diggle 2016) et l'analyse de la configuration des points, y compris splancs (Rowlingson et Diggle 2017) et spatstat (Baddeley, Rubak et Turner 2015) .

Le numéro suivant de R News (Volume 1/3) a de nouveau mis les packages spatiaux à l'honneur, avec une introduction plus détaillée à splancs et un commentaire sur les perspectives d'avenir en matière de statistiques spatiales (Bivand 2001) . De plus, le numéro a introduit deux packages pour tester l'autocorrélation spatiale qui sont finalement devenus une partie de spdep (Bivand 2017) . Le commentaire mentionne notamment le besoin de standardisation des interfaces spatiales, de mécanismes efficaces d'échange de données avec le SIG et de traitement des métadonnées spatiales telles que les systèmes de référence de coordonnées (CRS).

outils de carte (écrit par Nicholas Lewin-Koh Bivand et Lewin-Koh 2017) est un autre package important de cette époque. Initialement outils de carte contenait juste un wrapper autour de shapelib et permettait la lecture des fichiers de formes ESRI dans des listes imbriquées de géométrie. La classe S3 correspondante et aujourd'hui obsolète appelée "Map" stockait cette liste à côté d'une trame de données d'attribut. Le travail sur la représentation de classe « Carte » était néanmoins important puisqu'il alimentait directement sp avant sa publication sur le CRAN.

En 2003, Roger Bivand a publié une revue approfondie des packages spatiaux. Il a proposé un système de classes pour prendre en charge les « objets de données offerts par GDAL », y compris les types de points, de lignes, de polygones et de trames « fondamentaux ». De plus, il a suggéré que des interfaces vers des bibliothèques externes devraient former la base des packages R modulaires (Bivand 2003) . Dans une large mesure, ces idées ont été réalisées dans les packages rgdal et sp. Ceux-ci ont fourni une base pour l'analyse des données spatiales avec R, comme décrit dans Analyse de données spatiales appliquées avec R (ASDAR) (Bivand, Pebesma et Gómez-Rubio 2013) , publié pour la première fois en 2008. Dix ans plus tard, les capacités spatiales de R ont considérablement évolué mais elles s'appuient toujours sur les idées de Bivand (2003) : interfaces vers GDAL et PROJ , par exemple, continue d'alimenter les capacités d'E/S de données géographiques et de transformation CRS hautes performances de R (voir les chapitres 6 et 7, respectivement).

rgdal, publié en 2003, a fourni des liaisons GDAL pour R, ce qui a considérablement amélioré sa capacité à importer des données à partir de formats de données géographiques auparavant indisponibles. The initial release supported only raster drivers but subsequent enhancements provided support for coordinate reference systems (via the PROJ library), reprojections and import of vector file formats (see Chapter 7 for more on file formats). Many of these additional capabilities were developed by Barry Rowlingson and released in the rgdal codebase in 2006 (see Rowlingson et al. 2003 and the R-help email list for context) .

sp, released in 2005, overcame R’s inability to distinguish spatial and non-spatial objects (Pebesma and Bivand 2005) . sp grew from a workshop in Vienna in 2003 and was hosted at sourceforge before migrating to R-Forge. Prior to 2005, geographic coordinates were generally treated like any other number. sp changed this with its classes and generic methods supporting points, lines, polygons and grids, and attribute data.

sp stores information such as bounding box, coordinate reference system and attributes in slots in Spatial objects using the S4 class system, enabling data operations to work on geographic data (see Section 2.2.2). Plus loin, sp provides generic methods such as summary() and plot() for geographic data. In the following decade, sp classes rapidly became popular for geographic data in R and the number of packages that depended on it increased from around 20 in 2008 to over 100 in 2013 (Bivand, Pebesma, and Gómez-Rubio 2013) . As of 2018 almost 500 packages rely on sp, making it an important part of the R ecosystem. Prominent R packages using sp include: gstat, for spatial and spatio-temporal geostatistics geosphere, for spherical trigonometry and adehabitat used for the analysis of habitat selection by animals (E. Pebesma and Graeler 2018 Calenge 2006 Hijmans 2016) .

Pendant que rgdal et sp solved many spatial issues, R still lacked the ability to do geometric operations (see Chapter 5). Colin Rundel addressed this issue by developing rgeos, an R interface to the open-source geometry library (GEOS) during a Google Summer of Code project in 2010 (Bivand and Rundel 2018) . rgeos enabled GEOS to manipulate sp objects, with functions such as gIntersection() .

Another limitation of sp — its limited support for raster data — was overcome by raster, first released in 2010 (Hijmans 2017) . Its class system and functions support a range of raster operations as outlined in Section 2.3. A key feature of raster is its ability to work with datasets that are too large to fit into RAM (R’s interface to PostGIS supports off-disc operations on vector geographic data). raster also supports map algebra (see Section 4.3.2).

In parallel with these developments of class systems and methods came the support for R as an interface to dedicated GIS software. GRASS (R. S. Bivand 2000) and follow-on packages spgrass6 et rgrass7 (for GRASS GIS 6 and 7, respectively) were prominent examples in this direction (Bivand 2016a, 2016b) . Other examples of bridges between R and GIS include RSAGA (Brenning, Bangs, and Becker 2018, first published in 2008) , RPyGeo (A. Brenning 2012a, first published in 2008) , and RQGIS (Muenchow, Schratz, and Brenning 2017, first published in 2016) (see Chapter 9).

Visualization was not a focus initially, with the bulk of R-spatial development focused on analysis and geographic operations. sp provided methods for map making using both the base and lattice plotting system but demand was growing for advanced map making capabilities, especially after the release of ggplot2 in 2007. ggmap extended ggplot2’s spatial capabilities (Kahle and Wickham 2013) , by facilitating access to ‘basemap’ tiles from online services such as Google Maps. Though ggmap facilitated map-making with ggplot2, its utility was limited by the need to fortify spatial objects, which means converting them into long data frames. While this works well for points it is computationally inefficient for lines and polygons, since each coordinate (vertex) is converted into a row, leading to huge data frames to represent complex geometries. Although geographic visualization tended to focus on vector data, raster visualization is supported in raster and received a boost with the release of rasterVis, which is described in a book on the subject of spatial and temporal data visualization (Lamigueiro 2018) . As of 2018 map making in R is a hot topic with dedicated packages such as tmap, leaflet et mapview all supporting the class system provided by sf, the focus of the next chapter (see Chapter 8 for more on visualization).


13.1 Global Moran’s I

13.1.1 Computing the Moran’s I

Let’s start with a working example: 2010 per capita income for the state of Maine.

Figure 13.1: 2010 median per capita income aggregated at the county level.

It may seem apparent that, when aggregated at the county level, the income distribution follows a north-south trend (i.e. high values appear clustered near the southern end of the state and low values seem clustered near the north and east). But a qualitative description may not be sufficient we might want to quantify the degree to which similar (or dissimilar) counties are clustered. One measure of this type or relationship is the Moran’s I statistic.

The Moran’s I statistic is the correlation coefficient for the relationship between a variable (like income) and its surrounding values. But before we go about computing this correlation, we need to come up with a way to define a neighbor. One approach is to define a neighbor as being any contiguous polygon. For example, the northern most county (Aroostook), has four contiguous neighbors while the southern most county (York) has two contiguous counties. Other neighborhood definitions include distance bands (e.g. counties within 100 km) and k nearest neighbors (e.g. the 2 closest neighbors). Note that distance bands and k nearest neighbors are usually measured using the polygon’s centroids and not their boundaries.

Figure 13.2: Maps show the links between each polygon and their respective neighbor(s) based on the neighborhood definition. A contiguous neighbor is defined as one that shares a boundary or a vertex with the polygon of interest. Orange numbers indicate the number of neighbors for each polygon. Note that the top most county has no neighbors when a neighborhood definition of a 100 km distance band is used (i.e. no centroids are within a 100 km search radius)

Once we define a neighborhood for our analysis we identify the neighbors for each polygon in our dataset then summaries the values for each neighborhood cluster (by computing their mean values, for example). This summarized neighbor value is sometimes referred to as a lagging value (Xlag). In our working example, we adopt a contiguity neighborhood and compute the average neighboring income value (Incomelag) for each county in our dataset. We then plot Incomelag vs. Income for each county. The Moran’s I coefficient between Incomelag et Income is nothing more than the slope of the least squares regression line that best fits the points après having equalized the spread between both sets of data.

* vs. *Income*. If we equalize the spread between both axes (i.e. convert to a z-score) the slope of the regression line represents the Moran" />

Figure 13.3: Scatter plot of Incomelag vs. Income. If we equalize the spread between both axes (i.e. convert to a z-score) the slope of the regression line represents the Moran’s I statistic.

If there is no relationship between Income et Incomelag, the slope will be close to flat (resulting in a Moran’s I value near 0). In our working example, the Moran’s I value is 0.377. So this begs the question, how significant is this Moran’s I value (i.e. is the computed slope significantly different from 0)? There are two approaches to estimating the significance: an analytical solution and a Monte Carlo solution. The analytical solution makes some restrictive assumptions about the data and thus cannot always be reliable. Another approach (and the one favored here) is a Monte Carlo test which makes non assumptions about the dataset including the shape and layout of each polygon.

13.1.2 Monte Carlo approach to estimating significance

In a Monte Carlo test (a permutation bootstrap test, to be exact), the attribute values are randomly assigned to polygons in the data set and for each permutation of the attribute values, a Moran’s I value is computed. The output is a sampling distribution of Moran’s I values under the (null) hypothesis that attribute values are randomly distributed across the study area. We then compare our observed Moran’s I value to this sampling distribution.

Figure 13.4: Results from 199 permutations. Left plot shows Moran’s I slopes (in gray) from each random permutation of income values superimposed with the observed Moran’s I slope (in red). Right plot shows the distribution of Moran’s I values for all 199 permutations red vertical line shows our observed Moran’s I value of 0.377.

In our working example, 199 simulations indicate that out observed Moran’s I value of 0.377 is not a value we would expect to compute if the income values were randomly distributed across each county. A (pseudo) P-value can easily be computed from the simulation results:

where (N_) is the number of simulated Moran’s I values more extreme than our observed statistic and (N) is the total number of simulations. Here, out of 199 simulations, just one simulation result was more extreme than our observed statisic, (N_) = 1, so (p) is equal to (1 + 1) / (199 + 1) = 0.01. This is interpreted as “there is a 1% probability that we would be wrong in rejecting the null hypothesis Ho.


QGIS: How to find the shortest distance between two line layers

I am working with two layers in QGIS, which are both line layers. Essentially, I would like to add an attribute in one layer indicating the shortest distance to a feature in the other layer, as well as that other feature's ID. Is there a tool to do this without converting one of the two layers to points first? Or some relatively simple python process?

For example, I have a river segments layer and a road segments layer. I would like to add the distance to the nearest road & the name of that road to the river layer.


Methoden

A polygon's boundary is a polyline. A polyline's boundary is a multipoint, corresponding to the endpoints of the line. A point or multipoint's boundary is an empty point or multipoint.

The buffer distance is in the same units as the geometry that is being buffered.

A negative distance can only be specified against a polygon geometry.

The buffered polygon geometry.

An extent object used to define the clip extent.

An output geometry clipped to the specified extent.

Der boolesche Rückgabetyp True gibt an, dass diese Geometrie die zweite Geometrie enthält.

The resulting geometry. The convex hull of a single point is the point itself.

Der boolesche Rückgabetyp "True" gibt an, dass sich die beiden Geometrien in einer Geometrie mit einem geringeren Shape-Typ schneiden.