Générer une couche d’analyse de livraison sur le dernier kilomètre (Network Analyst)

Synthèse

Crée une couche d’analyse de livraison sur le dernier kilomètre et définit ses propriétés d’analyse. Une couche d’analyse de livraison sur le dernier kilomètre s’avère utile pour optimiser un ensemble de tournées au moyen d’une flotte de véhicules. La couche peut être créée à l'aide d'un jeu de données réseau local ou d'un service hébergé en ligne ou sur un portail.

Utilisation

  • Le réseau d’analyse utilisé pour l’analyse sur le dernier kilomètre doit comporter au moins un mode de déplacement, un attribut de coût avec des unités de temps et un attribut de coût avec des unités de distance, ainsi qu’un attribut de fuseau horaire.

  • Après avoir créé la couche d’analyse avec cet outil, vous pouvez ajouter des objets d’analyse de réseau à l’aide de l’outil Ajouter des localisations, résoudre l’analyse à l’aide de l’outil Calculer et enregistrer les résultats sur le disque à l’aide de l’outil Enregistrer dans un fichier de couche.

  • Lorsque vous utilisez cet outil dans des modèles de géotraitement, si le modèle est exécuté en tant qu’outil, la couche d’analyse de réseau en sortie doit être convertie en paramètre de modèle. Dans le cas contraire, la couche en sortie n’est pas ajoutée au contenu de la carte.

  • Même si cet outil peut être exécuté dans Python, la meilleure façon d’automatiser les processus de livraison sur le dernier kilomètre dans Python consiste à utiliser l’objet solveur LastMileDelivery dans le module arcpy.nax Network Analyst.

Paramètres

ÉtiquetteExplicationType de données
Source de données réseau

Jeu de données réseau ou service sur lequel l'analyse du réseau est effectuée. Utilisez l'URL du portail pour un service.

Le réseau doit comporter au moins un mode de déplacement, un attribut de coût avec des unités de temps et un attribut de coût avec des unités de distance, ainsi qu’un attribut de fuseau horaire.

Network Dataset Layer;String
Nom de la couche
(Facultatif)

Nom de la couche d’analyse de réseau à créer.

String
Mode de déplacement
(Facultatif)

Nom du mode de déplacement à utiliser dans l’analyse. Le mode de déplacement représente une collection de paramètres réseau, tels que des restrictions de circulation et des règles de demi-tour, qui détermine la façon dont un piéton, une voiture, un camion ou un autre mode de transport se déplace sur le réseau. Les modes de déplacement sont définis dans votre source de données de réseau.

Vous pouvez aussi utiliser un objet arcpy.na.TravelMode et une chaîne contenant la représentation JSON valide d’un mode de déplacement en entrée du paramètre.

L’attribut d’impédance du mode de déplacement n’a pas d’unités de temps.

String
Unités de temps
(Facultatif)

Indique les unités de temps utilisées par les propriétés de la couche d’analyse et les champs temporels des sous-couches et des tables de la couche d’analyse (classes d’analyse de réseau). Cette valeur n’a pas besoin d’être identique aux unités de l’attribut de coût temporel.

  • MinutesLes unités de temps sont les minutes. Il s’agit de l’option par défaut.
  • SecondesLes unités de temps sont les secondes.
  • HeuresLes unités de temps sont les heures.
  • JoursLes unités de temps sont les jours.
String
Unités de distance
(Facultatif)

Indique les unités de distance utilisées par les propriétés de la couche d’analyse et les champs de distance des sous-couches et des tables de la couche d’analyse (classes d’analyse de réseau). Cette valeur n’a pas besoin d’être identique aux unités de l’attribut de coût de distance facultatif.

Attention :
Les options Pouces, Centimètres, Millimètres et Décimètres ne sont pas disponibles lorsque la source de données réseau est un service.

  • MilesLes milles sont les unités de distance. Il s’agit de l’option par défaut.
  • KilomètresLes unités de distance sont les kilomètres.
  • PiedsLes unités de distance sont les pieds.
  • YardsLes unités de distance sont les yards.
  • MètresLes unités de distance sont les mètres.
  • PoucesLes unités de distance sont les pouces.
  • CentimètresLes unités de distance sont les centimètres.
  • MillimètresLes unités de distance sont les millimètres.
  • DécimètresLes unités de distance sont les décimètres.
  • Milles nautiquesLes unités de distance sont les milles nautiques.
String
Date de début la plus ancienne de l’itinéraire
(Facultatif)

Date de début la plus ancienne par défaut pour les itinéraires. Cette date est utilisée pour tous les itinéraires pour lesquels le champ EarliestStartDate dans la sous-couche Routes est nul. Si aucune valeur de paramètre n’est spécifiée, toutes les lignes dans la sous-couche Routes doivent indiquer une valeur dans le champ EarliestStartDate.

Bien que vous puissiez spécifier à la fois une date et une heure pour ce paramètre, seule la date est utilisée. Pour définir l’heure de début la plus ancienne pour les itinéraires, utilisez le paramètre Heure de début la plus ancienne de l’itinéraire.

Attention :
Les autres solveurs Network Analyst permettent d’utiliser des dates spéciales pour modéliser un jour de la semaine ou la date actuelle au lieu d’une date statique spécifique, mais pas le solveur de la livraison sur le dernier kilomètre. Vous devez choisir une date spécifique.

Date
Heure de début la plus ancienne de l’itinéraire
(Facultatif)

Heure de début la plus ancienne par défaut pour les itinéraires. Cette heure du jour est utilisée pour tous les itinéraires pour lesquels le champ EarliestStartTime dans la sous-couche Routes est nul. Si aucune valeur de paramètre n’est spécifiée, toutes les lignes dans la sous-couche Routes doivent indiquer une valeur dans le champ EarliestStartTime.

Bien que vous puissiez spécifier à la fois une date et une heure pour ce paramètre, seule l’heure est utilisée. Pour définir la date de début la plus ancienne pour les itinéraires, utilisez le paramètre Date de début la plus ancienne de l’itinéraire.

Date
Durée totale maximale de l’itinéraire
(Facultatif)

Durée totale maximale autorisée pour chaque itinéraire. La valeur désigne un nombre positif quelconque.

La valeur est utilisée pour tous les itinéraires pour lesquels le champ MaxTotalTime dans la sous-couche Routes est nul. Si aucune valeur de paramètre n’est spécifiée, toutes les lignes dans la sous-couche Routes doivent indiquer une valeur dans le champ MaxTotalTime.

La valeur est interprétée dans les unités spécifiées par le paramètre Unités de temps.

Double
Fuseau horaire des champs temporels
(Facultatif)

Indique le fuseau horaire utilisé par les champs date-heure en entrée pris en charge par l’outil.

Le fait de spécifier les valeurs date-heure en UTC est utile si vous ne connaissez pas le fuseau horaire dans lequel les ordres ou les dépôts se situent ou si vous avez des ordres ou des dépôts dans plusieurs fuseaux horaires et si vous souhaitez que toutes les valeurs date-heures commencent en simultané.

  • Heure locale des localisationsLes valeurs date-heure associées aux ordres ou dépôts figurent dans le fuseau horaire dans lequel les ordres et les dépôts se trouvent. Pour les itinéraires, les valeurs date-heure sont basées sur le fuseau horaire où se trouve le dépôt de début pour l’itinéraire. Si un itinéraire n’a pas de dépôt de départ, tous les ordres et dépôts de l’ensemble des itinéraires doivent être dans un seul et même fuseau horaire. Il s’agit de l’option par défaut.
  • UTCLes valeurs date-heure associées aux ordres, dépôts et itinéraires sont exprimées en temps universel coordonné (UTC) et ne sont pas basées sur le même fuseau horaire que les ordres ou les dépôts.
String
Écart de séquence
(Facultatif)

Écart, exprimé sous forme de valeurs numériques, à préserver dans le champ Sequence de la sous-couche Ordres entre des ordres adjacents lorsque l’analyse est résolue. La valeur fait office de multiplicateur pour la séquence réelle des ordres de chaque itinéraire. Par exemple, si l’écart est égal à 5, le premier ordre sur l’itinéraire possède une valeur de champ Sequence de 5, le second une valeur de champ Sequence de 10, le troisième une valeur de 15, et ainsi de suite. Ce paramètre facilite l’insertion des ordres après la création du plan d’itinéraire initial étant donné qu’il est possible d’insérer les nouveaux ordres dans les écarts de la séquence.

La valeur doit être un entier positif. La valeur par défaut est 1.

La première fois que l’analyse est résolue, la valeur du champ Sequence est renseignée par les valeurs séquentielles utilisant l’écart de séquence désigné. Lors des résolutions suivantes de la même analyse, les valeurs du champ Sequence des ordres existants sont conservées. De nouveaux ordres sont insérés dans les écarts en utilisant des valeurs entières pour le champ Sequence qui ne sont pas utilisées par d’autres ordres. Si l’écart de séquence est fixé à 1, les valeurs de séquence sont toujours mises à jour sur des valeurs contiguës lors de chaque résolution.

Long
Ignorer les localisations d’ordre non valides lors de la résolution
(Facultatif)

Détermine si les localisations d’ordre non valides sont ignorées.

  • Activé : les localisations d’ordre non valides sont ignorées afin que l’analyse aboutisse avec uniquement les localisations valides.
  • Désactivé : les localisations d’ordre non valides ne sont pas ignorées et provoquent l’échec de l’analyse. Il s’agit de l’option par défaut.
Boolean
Forme de l’itinéraire en sortie
(Facultatif)

Indique le type de forme qui sera utilisé pour les entités itinéraires générées par l’analyse.

Quel que soit le type de forme en sortie spécifié, le meilleur itinéraire est toujours déterminé par l’impédance du réseau, jamais par la distance euclidienne. Cela signifie que seules les formes d'itinéraire sont différentes, pas le parcours du réseau sous-jacent.

  • Le long du réseauLes itinéraires en sortie ont la forme exacte des sources de données du réseau sous-jacentes. La sortie comprend des mesures d’itinéraire pour le référencement linéaire. Les mesures augmentent à partir du premier arrêt et enregistrent l'impédance cumulée pour atteindre une position donnée.
  • Aucune ligneAucune forme n’est créée pour les itinéraires en sortie.
  • Lignes droitesLa forme d'itinéraire en sortie est une ligne droite unique entre les arrêts.Il s’agit de l’option par défaut.
String
Générer des feuilles de route lors du calcul
(Facultatif)

Spécifie si une feuille de route est générée lors de la résolution de l’analyse.

  • Activé : une feuille de route détaillée sera générée lors de la résolution.
  • Désactivé : aucune feuille de route détaillée ne sera générée lors de la résolution. Il s’agit de l’option par défaut.
Boolean

Sortie obtenue

ÉtiquetteExplicationType de données
Couche Network Analyst

Nouvelle couche d’analyse de réseau.

Network Analyst Layer

arcpy.na.MakeLastMileDeliveryAnalysisLayer(network_data_source, {layer_name}, {travel_mode}, {time_units}, {distance_units}, {earliest_route_start_date}, {earliest_route_start_time}, {max_route_total_time}, {time_zone_for_time_fields}, {sequence_gap}, {ignore_invalid_order_locations}, {line_shape}, {generate_directions_on_solve})
NomExplicationType de données
network_data_source

Jeu de données réseau ou service sur lequel l'analyse du réseau est effectuée. Utilisez l'URL du portail pour un service.

Le réseau doit comporter au moins un mode de déplacement, un attribut de coût avec des unités de temps et un attribut de coût avec des unités de distance, ainsi qu’un attribut de fuseau horaire.

Network Dataset Layer;String
layer_name
(Facultatif)

Nom de la couche d’analyse de réseau à créer.

String
travel_mode
(Facultatif)

Nom du mode de déplacement à utiliser dans l’analyse. Le mode de déplacement représente une collection de paramètres réseau, tels que des restrictions de circulation et des règles de demi-tour, qui détermine la façon dont un piéton, une voiture, un camion ou un autre mode de transport se déplace sur le réseau. Les modes de déplacement sont définis dans votre source de données de réseau.

Vous pouvez aussi utiliser un objet arcpy.na.TravelMode et une chaîne contenant la représentation JSON valide d’un mode de déplacement en entrée du paramètre.

L’attribut d’impédance du mode de déplacement n’a pas d’unités de temps.

String
time_units
(Facultatif)

Indique les unités de temps utilisées par les propriétés de la couche d’analyse et les champs temporels des sous-couches et des tables de la couche d’analyse (classes d’analyse de réseau). Cette valeur n’a pas besoin d’être identique aux unités de l’attribut de coût temporel.

  • MinutesLes unités de temps sont les minutes. Il s’agit de l’option par défaut.
  • SecondsLes unités de temps sont les secondes.
  • HoursLes unités de temps sont les heures.
  • DaysLes unités de temps sont les jours.
String
distance_units
(Facultatif)

Indique les unités de distance utilisées par les propriétés de la couche d’analyse et les champs de distance des sous-couches et des tables de la couche d’analyse (classes d’analyse de réseau). Cette valeur n’a pas besoin d’être identique aux unités de l’attribut de coût de distance facultatif.

  • MilesLes milles sont les unités de distance. Il s’agit de l’option par défaut.
  • KilometersLes unités de distance sont les kilomètres.
  • FeetLes unités de distance sont les pieds.
  • YardsLes unités de distance sont les yards.
  • MetersLes unités de distance sont les mètres.
  • InchesLes unités de distance sont les pouces.
  • CentimetersLes unités de distance sont les centimètres.
  • MillimetersLes unités de distance sont les millimètres.
  • DecimetersLes unités de distance sont les décimètres.
  • NauticalMilesLes unités de distance sont les milles nautiques.

Attention :
Les options Inches, Centimeters, Millimeters et Decimeters ne sont pas disponibles lorsque la source de données réseau est un service.

String
earliest_route_start_date
(Facultatif)

Date de début la plus ancienne par défaut pour les itinéraires. Cette date est utilisée pour tous les itinéraires pour lesquels le champ EarliestStartDate dans la sous-couche Routes est nul. Si aucune valeur de paramètre n’est spécifiée, toutes les lignes dans la sous-couche Routes doivent indiquer une valeur dans le champ EarliestStartDate.

Spécifiez la valeur de ce paramètre en utilisant un objet datetime.date.

Attention :
Les autres solveurs Network Analyst permettent d’utiliser des dates spéciales pour modéliser un jour de la semaine ou la date actuelle au lieu d’une date statique spécifique, mais pas le solveur de la livraison sur le dernier kilomètre. Vous devez choisir une date spécifique.

Date
earliest_route_start_time
(Facultatif)

Heure de début la plus ancienne par défaut pour les itinéraires. Cette heure du jour est utilisée pour tous les itinéraires pour lesquels le champ EarliestStartTime dans la sous-couche Routes est nul. Si aucune valeur de paramètre n’est spécifiée, toutes les lignes dans la sous-couche Routes doivent indiquer une valeur dans le champ EarliestStartTime.

Spécifiez la valeur de ce paramètre en utilisant un objet datetime.time.

Date
max_route_total_time
(Facultatif)

Durée totale maximale autorisée pour chaque itinéraire. La valeur désigne un nombre positif quelconque.

La valeur est utilisée pour tous les itinéraires pour lesquels le champ MaxTotalTime dans la sous-couche Routes est nul. Si aucune valeur de paramètre n’est spécifiée, toutes les lignes dans la sous-couche Routes doivent indiquer une valeur dans le champ MaxTotalTime.

La valeur est interprétée dans les unités spécifiées par le paramètre time_units.

Double
time_zone_for_time_fields
(Facultatif)

Indique le fuseau horaire utilisé par les champs date-heure en entrée pris en charge par l’outil.

  • LOCAL_TIME_AT_LOCATIONSLes valeurs date-heure associées aux ordres ou dépôts figurent dans le fuseau horaire dans lequel les ordres et les dépôts se trouvent. Pour les itinéraires, les valeurs date-heure sont basées sur le fuseau horaire où se trouve le dépôt de début pour l’itinéraire. Si un itinéraire n’a pas de dépôt de départ, tous les ordres et dépôts de l’ensemble des itinéraires doivent être dans un seul et même fuseau horaire. Il s’agit de l’option par défaut.
  • UTCLes valeurs date-heure associées aux ordres, dépôts et itinéraires sont exprimées en temps universel coordonné (UTC) et ne sont pas basées sur le même fuseau horaire que les ordres ou les dépôts.

Le fait de spécifier les valeurs date-heure en UTC est utile si vous ne connaissez pas le fuseau horaire dans lequel les ordres ou les dépôts se situent ou si vous avez des ordres ou des dépôts dans plusieurs fuseaux horaires et si vous souhaitez que toutes les valeurs date-heures commencent en simultané.

String
sequence_gap
(Facultatif)

Écart, exprimé sous forme de valeurs numériques, à préserver dans le champ Sequence de la sous-couche Ordres entre des ordres adjacents lorsque l’analyse est résolue. La valeur fait office de multiplicateur pour la séquence réelle des ordres de chaque itinéraire. Par exemple, si l’écart est égal à 5, le premier ordre sur l’itinéraire possède une valeur de champ Sequence de 5, le second une valeur de champ Sequence de 10, le troisième une valeur de 15, et ainsi de suite. Ce paramètre facilite l’insertion des ordres après la création du plan d’itinéraire initial étant donné qu’il est possible d’insérer les nouveaux ordres dans les écarts de la séquence.

La valeur doit être un entier positif. La valeur par défaut est 1.

La première fois que l’analyse est résolue, la valeur du champ Sequence est renseignée par les valeurs séquentielles utilisant l’écart de séquence désigné. Lors des résolutions suivantes de la même analyse, les valeurs du champ Sequence des ordres existants sont conservées. De nouveaux ordres sont insérés dans les écarts en utilisant des valeurs entières pour le champ Sequence qui ne sont pas utilisées par d’autres ordres. Si l’écart de séquence est fixé à 1, les valeurs de séquence sont toujours mises à jour sur des valeurs contiguës lors de chaque résolution.

Long
ignore_invalid_order_locations
(Facultatif)

Détermine si les localisations d’ordre non valides sont ignorées.

  • SKIPLes localisations d’ordre non valides sont ignorées afin que l’analyse aboutisse avec uniquement les localisations valides.
  • HALTLes localisations d’ordre non valides ne sont pas ignorées et provoquent l’échec de l’analyse. Il s’agit de l’option par défaut.
Boolean
line_shape
(Facultatif)

Indique le type de forme qui sera utilisé pour les entités itinéraires générées par l’analyse.

  • ALONG_NETWORKLes itinéraires en sortie ont la forme exacte des sources de données du réseau sous-jacentes. La sortie comprend des mesures d’itinéraire pour le référencement linéaire. Les mesures augmentent à partir du premier arrêt et enregistrent l'impédance cumulée pour atteindre une position donnée.
  • NO_LINESAucune forme n’est créée pour les itinéraires en sortie.
  • STRAIGHT_LINESLa forme d'itinéraire en sortie est une ligne droite unique entre les arrêts.Il s’agit de l’option par défaut.

Quel que soit le type de forme en sortie spécifié, le meilleur itinéraire est toujours déterminé par l’impédance du réseau, jamais par la distance euclidienne. Cela signifie que seules les formes d'itinéraire sont différentes, pas le parcours du réseau sous-jacent.

String
generate_directions_on_solve
(Facultatif)

Spécifie si une feuille de route est générée lors de la résolution de l’analyse.

  • DIRECTIONSUne feuille de route détaillée sera générée lors de la résolution.
  • NO_DIRECTIONSAucune feuille de route détaillée ne sera générée lors de la résolution. Il s’agit de l’option par défaut.
Boolean

Sortie obtenue

NomExplicationType de données
out_network_analysis_layer

Nouvelle couche d’analyse de réseau.

Network Analyst Layer

Exemple de code

Exemple 1 d’utilisation de la fonction MakeLastMileDeliveryAnalysisLayer (fenêtre Python)

Exécutez l’outil en spécifiant un sous-ensemble de paramètres.

import datetime

arcpy.na.MakeLastMileDeliveryAnalysisLayer(
    r"C:\Data\SanFrancisco.gdb\Transportation\Streets_ND",
    "Package Delivery",
    "Trucking Time",
    time_units="Hours",
    earliest_route_start_date=datetime.date(2023, 11, 28),
    earliest_route_start_time=datetime.time(7, 30, 0),
    route_start_flexibility=1.5,
    line_shape="NO_LINES"
)

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes