Générer des zones de desserte (ArcGIS Network Analyst)
Récapitulatif
Permet de créer une couche d'analyse de réseau de zone de desserte, de définir les propriétés d'analyse et de résoudre cette dernière. Cet outil est idéal pour définir un service de géotraitement de zone de desserte sur le Web. Une zone de desserte de réseau est une région qui englobe toutes les rues auxquelles il est possible d'accéder selon une distance ou un temps de trajet donnés à partir d'une ou de plusieurs ressources.
Les zones de desserte servent généralement à visualiser et mesurer l'accessibilité. Par exemple, un polygone de temps de conduite de trois minutes autour d'une épicerie permet de déterminer les résidents susceptibles de rejoindre le magasin en trois minutes et donc d'y faire leurs courses.
Bien que similaires, les outils Générer des zones de desserte et Générer une couche de zones de desserte ont été conçus à des fins différentes. Faites appel à l'outil Générer des zones de desserte si vous configurez un service de géotraitement. Cela permettra de simplifier le processus de configuration. Sinon, utilisez Générer une couche de zones de desserte. En outre, utilisez Générer une couche de zones de desserte si vous devez générer des lignes de zone de desserte ; l'option Générer des zones de desserte ne permet pas de générer ces lignes.
Pour créer un service de géotraitement de zone de desserte avec Générer des zones de desserte, il vous suffit de configurer un outil et de le publier directement en tant que service. En revanche, vous devez créer un modèle avec Générer une couche de zones de desserte, le connecter à d'autres outils et le publier pour créer un service de géotraitement de zone de desserte. Reportez-vous à la rubrique Exemple de service de géotraitement : Polygones de temps de conduite pour apprendre à définir un service de polygones de temps de conduite à l'aide de données de didacticiel. Vous pouvez également utiliser le service ArcGIS Online Générer des zones de desserte. Ce service fonctionne comme un outil de géotraitement ArcMap et vous pouvez y accéder à partir d'autres applications. Il inclut en outre des données routières de haute qualité pour la majorité des pays du monde.
Utilisation
La boîte de dialogue de cet outil regroupe divers paramètres facultatifs dans les six catégories suivantes pour vous permettre de mieux les gérer :
- Analyse avancée
- Interruptions
- Jeu de données réseau
- Localisations du réseau
- Génération de polygones
- Fonctionnalités du service
En savoir plus sur la sortie de l'outil Générer des zones de desserte
Syntaxe
Paramètre | Explication | Type de données |
Facilities |
Ressources autour desquelles les zones de desserte sont générées. Le jeu d'entités de ressources comporte trois attributs : ObjectID : Champ d'ID géré par le système. Forme : Champ de géométrie qui indique l'emplacement géographique de l'objet d'analyse de réseau. Name : Nom de la ressource. Si le nom n'est pas spécifié (champ vide), un nom est automatiquement généré pendant le processus de calcul. | Feature Set |
Break_Values |
Spécifie la taille et le nombre de polygones de zones de desserte à générer pour chaque ressource. Les unités sont déterminées par la valeurs Unités des bornes. Au cours de l'exécution de l'outil Générer des zones de desserte, une interaction notable se produit entre les paramètres suivants : Valeurs des bornes, Unités des bornes et Attribut de temps ou Attribut de distance. Lorsqu'ils sont exécutés simultanément, les paramètres Valeurs des bornes et Unités des bornes définissent la distance entre la zone de desserte et les ressources ou la durée nécessaire pour les atteindre$$$. Chacun des paramètres Attribut de temps et Attribut de distance définit un attribut de coût de réseau. Toutefois, un seul de ces deux attributs de coût est utilisé, et celui que le solveur choisit correspond à la valeur Unités des bornes. Ainsi, lorsque vous spécifiez une valeur Unités de bornes basée sur le temps, comme des secondes ou des minutes, l'outil procède à l'analyse en faisant appel à l'attribut de coût défini dans le paramètre Attribut de temps. Lorsque vous spécifiez une valeur Unités des bornes basée sur la distance, comme des kilomètres ou des milles, l'outil fait appel à l'attribut de coût défini dans le paramètre Attribut de distance. Plusieurs bornes de polygones peuvent être configurées pour créer des zones de desserte concentriques par ressource. Par exemple, pour rechercher des zones de desserte à deux, trois et cinq milles pour chaque ressource, entrez "2 3 5" en séparant les valeurs par un espace. Définissez Unités des bornes sur Milles et assurez-vous que vous avez choisi un attribut de réseau basé sur la distance pour le paramètre Attribut de distance. | String |
Break_Units |
Unités du paramètre Valeurs des bornes.
L'outil Générer des zones de desserte choisit d'utiliser l'attribut de coût de réseau spécifié dans le paramètre Attribut de temps ou Attribut de distance en fonction des unités que vous spécifiez ici (unités basées sur le temps ou sur la distance). L'outil effectue la conversion d'unités nécessaire lorsque la valeur Unités des bornes diffère des unités de l'attribut de coût de temps ou de distance correspondant. | String |
Network_Dataset |
Jeu de données réseau qui fait l'objet d'une analyse. Les jeux de données réseau représentent le plus souvent des réseaux de transport, mais aussi d'autres types de réseaux. Le jeu de données réseau doit présenter au moins un attribut de coût basé sur le temps et un autre basé sur la distance. | Network Dataset Layer |
Service_Areas |
Espace de travail en sortie et nom des entités en sortie. Cet espace de travail doit déjà exister. L'espace de travail en sortie par défaut est in_memory. | Feature Class |
Travel_Direction (Facultatif) |
Indiquez si le trajet utilisé pour générer les polygones de la zone de desserte s'effectue depuis ou vers les ressources.
La direction du trajet peut changer la forme des polygones si les impédances sur les côtés opposés d'une rue diffèrent ou en présence de rues à sens unique. La direction à sélectionner dépend de la nature de votre analyse des zones de desserte. La zone de desserte d'un vendeur de pizzas, par exemple, doit être créée depuis la ressource, alors que la zone de desserte d'un hôpital doit être créée vers la ressource, car le temps de trajet critique d'un patient est consacré à son déplacement vers l'hôpital. | String |
Time_of_Day (Facultatif) |
Heure de départ ou d'arrivée aux ressources. L'interprétation de cette valeur varie selon que le trajet se rapproche ou s'éloigne des ressources.
Votre jeu de données réseau doit inclure les données de trafic pour ce paramètre pour présenter un effet. En répétant la même analyse avec des valeurs différentes du paramètre Heure, vous pouvez voir l'évolution de la portée d'une ressource en fonction de l'heure. Par exemple, la zone de desserte de 5 minutes autour d'une caserne de pompiers peut être grande tôt le matin, diminuer aux heures de pointe matinales, augmenter en fin de matinée, et ainsi de suite tout au long de la journée. | Date |
UTurn_Policy (Facultatif) |
Règle de demi-tour aux jonctions. L'autorisation des demi-tours implique que le solveur puisse faire demi-tour au niveau d'une jonction et revenir en arrière par la même rue. Dans la mesure où les jonctions représentent des intersections de rues et des voies sans issue, différents véhicules peuvent faire demi-tour à certaines jonctions mais pas à d'autres, selon que la jonction représente une intersection ou une voie sans issue. Pour en tenir compte, le paramètre de règle de demi-tour est spécifié implicitement par le nombre de tronçons connectés à la jonction, également connu sous le nom de "valence de jonction". Les valeurs acceptables pour ce paramètre sont répertoriées ci-dessous ; chacune est suivie d'une description de sa signification en termes de valence de jonction.
Astuce: Si la définition de votre règle de demi-tour n'est pas suffisamment précise, envisagez d'ajouter un évaluateur de délai de tournant global à un attribut de coût de réseau ou de modifier ses paramètres, le cas échéant, en veillant tout particulièrement à la configuration des tournants inversés. Pensez également à définir la propriété CurbApproach de vos localisations réseau. | String |
Point_Barriers (Facultatif) | Spécifie les interruptions ponctuelles qui sont divisées en deux types : les interruptions ponctuelles de restriction et les interruptions ponctuelles à coût ajouté. Elles restreignent temporairement la traversée de points sur le réseau ou leur ajoutent une impédance. Les interruptions ponctuelles sont définies par un jeu d'entités, et les valeurs attributaires que vous spécifiez pour les entités ponctuelles déterminent s'il s'agit d'interruptions de restriction ou d'interruptions à coût ajouté. Les champs de la table attributaire sont répertoriés et décrits ci-dessous. ObjectID : Champ d'ID géré par le système. Forme : Champ de géométrie qui indique l'emplacement géographique de l'objet d'analyse de réseau. Name : Nom de l'interruption. BarrierType : Spécifie si l'interruption restreint entièrement le trajet ou ajoute un coût de parcours correspondant. Deux options sont disponibles :
Utilisez la valeur 0 pour l'option Restriction et 2 pour Coût ajouté. AdditionalCost : AdditionalCost indique la quantité d'impédance ajoutée lorsqu'une zone de desserte franchit l'interruption. L'unité de cette valeur de champ est identique aux unités spécifiées pour Unités des bornes. | Feature Set |
Line_Barriers (Facultatif) |
Spécifie les interruptions linéaires qui restreignent temporairement leur passage. Les interruptions linéaires sont définies par un jeu d'entités. Les champs de la table attributaire sont répertoriés et décrits ci-dessous. ObjectID : Champ d'ID géré par le système. Forme : Champ de géométrie qui indique l'emplacement géographique de l'objet d'analyse de réseau. Name : Nom de l'interruption. | Feature Set |
Polygon_Barriers (Facultatif) | Spécifie les interruptions polygonales qui sont divisées en deux types : les interruptions polygonales de restriction et les interruptions polygonales à coût proportionné. Elles restreignent temporairement la traversée des parties du réseau qu'elles couvrent ou proportionnent leur impédance. Les interruptions polygonales sont définies par un jeu d'entités, et les valeurs attributaires que vous spécifiez pour les entités surfaciques déterminent s'il s'agit d'interruptions de restriction ou d'interruptions à coût proportionné. Les champs de la table attributaire sont répertoriés et décrits ci-dessous. ObjectID : Champ d'ID géré par le système. Forme : Champ de géométrie qui indique l'emplacement géographique de l'objet d'analyse de réseau. Name : Nom de l'interruption. BarrierType : Spécifie si la barrière restreint entièrement le trajet ou proportionne son coût de parcours correspondant. Deux options sont disponibles :
Utilisez la valeur 0 pour l'option Restriction et 1 pour Coût proportionné. ScaledCostFactor : ScaledCostFactor indique la quantité d'impédance multipliée lorsqu'une zone de desserte franchit l'interruption. | Feature Set |
Time_Attribute (Facultatif) |
Définit l'attribut de coût de réseau à utiliser lorsque la valeur Unités des bornes est une unité de temps. L'outil effectue la conversion des unités de temps nécessaire lorsque la valeur Unités des bornes diffère des unités de l'attribut de coût défini ici. En d'autres termes, les unités de temps des bornes et l'attribut de coût de réseau ne doivent pas nécessairement être identiques. | String |
Time_Attribute_Units (Facultatif) |
Unités de l'attribut de coût de réseau spécifiées par le paramètre Attribut de temps. Il s'agit simplement d'un paramètre d'information qui ne peut pas être modifié sans mise à jour directe du jeu de données réseau. Il est également inutile de le modifier, car les conversions entre les unités de valeurs des bornes et l'attribut de coût sont gérées à votre place. | String |
Distance_Attribute (Facultatif) | Définit l'attribut de coût de réseau à utiliser lorsque la valeur Unités des bornes est une unité de distance. L'outil effectue la conversion des unités de distance nécessaire lorsque la valeur Unités des bornes diffère des unités de l'attribut de coût défini ici. En d'autres termes, les unités de distance des bornes et l'attribut de coût de réseau ne doivent pas nécessairement être identiques. | String |
Distance_Attribute_Units (Facultatif) |
Unités de l'attribut de coût de réseau spécifiées par le paramètre Attribut de distance. Il s'agit simplement d'un paramètre d'information qui ne peut pas être modifié sans mise à jour directe du jeu de données réseau. Il est également inutile de le modifier, car les conversions entre les unités de valeurs des bornes et l'attribut de coût sont gérées à votre place. | String |
Use_Hierarchy_in_Analysis (Facultatif) |
Le paramètre n'est pas utilisé si aucun attribut de hiérarchie n'est défini dans le jeu de données réseau utilisé pour effectuer l'analyse. Dans ces cas, utilisez "#" comme valeur de paramètre. | Boolean |
Restrictions (Facultatif) |
Indique quels attributs de restriction réseau sont respectés lors de l'analyse. | String |
Attribute_Parameter_Values (Facultatif) |
Spécifie les valeurs de paramètre des attributs de réseau possédant des paramètres. Le jeu d'enregistrements comporte deux colonnes qui permettent d'identifier les paramètres de manière unique et une autre colonne qui spécifie la valeur du paramètre. Le jeu d'enregistrements des valeurs de paramètre est associé à des attributs. Les champs de la table attributaire sont répertoriés et décrits ci-dessous. ObjectID : Champ d'ID géré par le système. AttributeName : Nom de l'attribut de réseau dont le paramètre d'attribut est défini par la ligne de table. ParameterName : Nom du paramètre d'attribut dont la valeur est définie par la ligne de table. (Les paramètres de type Objet ne peuvent pas être mis à jour à l'aide de cet outil.) ParameterValue : Valeur à utiliser pour le paramètre d'attribut. Si aucune valeur n'est spécifiée, le paramètre d'attribut est défini comme étant Null. | Record Set |
Maximum_Snap_Tolerance (Facultatif) |
La tolérance de capture maximale spécifie la distance maximale recherchée par ArcGIS Network Analyst pour placer ou replacer un point sur le réseau. Network Analyst recherche des tronçons ou jonctions appropriés et capture le point sur l'élément le plus proche. Si aucun emplacement approprié n'est trouvé dans la tolérance de capture maximale, l'objet est marqué comme étant non localisé. | Linear unit |
Exclude_Restricted_Portions_of_the_Network (Facultatif) |
| Boolean |
Feature_Locator_WHERE_Clause (Facultatif) |
Expression SQL utilisée pour sélectionner un sous-ensemble d'entités source qui $$$limite les éléments réseau sur lesquels les ressources peuvent être placées. La syntaxe de ce paramètre comprend deux parties : la première est le nom de la classe d'entités source (suivi d'un espace) et la seconde est l'expression SQL. Pour écrire une expression SQL pour deux classes d'entités source ou plus, séparez-les par un point-virgule. Pour éviter que les ressources ne soient placées sur des autoroutes à accès limité, par exemple, écrivez une expression SQL telle que la suivant pour exclure ces entités source : "Streets" "FUNC_CLASS not in('1', '2')". A noter que les interruptions ignorent la clause WHERE du localisateur d'entités lors du chargement. | String |
Polygons_for_Multiple_Facilities (Facultatif) |
Indiquez comment les polygones de zone de desserte sont générés lorsque plusieurs ressources sont présentes dans l'analyse.
| String |
Polygon_Overlap_Type (Facultatif) |
Précise l'option de création de polygones de zone de desserte concentriques sous forme de disques ou d'anneaux. Cette option s'applique uniquement lorsque plusieurs valeurs de bornes sont spécifiées pour les ressources.
| String |
Detailed_Polygons (Facultatif) | Permet de créer des polygones généralisés ou détaillés.
| Boolean |
Polygon_Trim_Distance (Facultatif) |
Spécifie la distance au sein de laquelle les polygones de zone de desserte sont tronqués. Cette option s'avère utile lorsque vos données sont rares et que vous ne voulez pas que la zone de desserte couvre de larges surfaces sur lesquelles il n'y a aucune entité. Si ce paramètre est défini par la valeur 0 si aucune valeur n'est spécifiée, les polygones de la zone de desserte ne seront pas tronqués. La valeur du paramètre est ignorée lors de l'utilisation de la hiérarchie. | Linear unit |
Polygon_Simplification_Tolerance (Facultatif) |
Indique dans quelle proportion vous souhaitez simplifier la géométrie du polygone. La simplification conserve les points critiques d'un polygone pour définir sa forme globale et supprime d'autres points. La distance de simplification que vous spécifiez est le décalage maximal autorisé du polygone simplifié par rapport au polygone d'origine. La simplification d'un polygone diminue le nombre de sommets et tend à réduire la durée d'affichage. | Linear unit |
Maximum_Facilities (Facultatif) |
Limite le nombre de ressources pouvant être ajoutées à l'analyse de la zone de desserte. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Par exemple, vous pouvez attribuer une valeur faible à ce paramètre pour une version gratuite du service que vous créez et utiliser une valeur plus élevée pour une version payante du service. Une valeur Null indique qu'il n'existe pas de limite. | Long |
Maximum_Number_of_Breaks (Facultatif) |
Limite le nombre de bornes pouvant être ajoutées à l'analyse de la zone de desserte. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Par exemple, vous pouvez attribuer une valeur faible à ce paramètre pour une version gratuite du service que vous créez et utiliser une valeur plus élevée pour une version payante du service. Une valeur Null indique qu'il n'existe pas de limite. | Long |
Maximum_Features_Affected_by_Point_Barriers (Facultatif) | Limite le nombre d'entités pouvant être affectées par des interruptions ponctuelles. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Par exemple, vous pouvez attribuer une valeur faible à ce paramètre pour une version gratuite du service que vous créez et utiliser une valeur plus élevée pour une version payante du service. Une valeur Null indique qu'il n'existe pas de limite. | Long |
Maximum_Features_Affected_by_Line_Barriers (Facultatif) |
Limite le nombre d'entités pouvant être affectées par des interruptions linéaires. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Par exemple, vous pouvez attribuer une valeur faible à ce paramètre pour une version gratuite du service que vous créez et utiliser une valeur plus élevée pour une version payante du service. Une valeur Null indique qu'il n'existe pas de limite. | Long |
Maximum_Features_Affected_by_Polygon_Barriers (Facultatif) |
Limite le nombre d'entités pouvant être affectées par des interruptions polygonales. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Par exemple, vous pouvez attribuer une valeur faible à ce paramètre pour une version gratuite du service que vous créez et utiliser une valeur plus élevée pour une version payante du service. Une valeur Null indique qu'il n'existe pas de limite. | Long |
Maximum_Break_Time_Value (Facultatif) |
Détermine la valeur maximale du paramètre Valeur des bornes lors de l'analyse des zones de desserte basées sur le temps. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Par exemple, vous pouvez attribuer une valeur faible à ce paramètre pour une version gratuite du service que vous créez et utiliser une valeur plus élevée pour une version payante du service. Une valeur Null indique qu'il n'existe pas de limite. | Double |
Maximum_Break_Distance_Value (Facultatif) | Détermine la valeur maximale du paramètre Valeur des bornes lors de l'analyse des zones de desserte basées sur la distance. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Par exemple, vous pouvez attribuer une valeur faible à ce paramètre pour une version gratuite du service que vous créez et utiliser une valeur plus élevée pour une version payante du service. Une valeur Null indique qu'il n'existe pas de limite. | Double |
Force_Hierarchy_beyond_Break_Time_Value (Facultatif) |
Indique la valeur de borne au-delà de laquelle le solveur forcera la hiérarchie même si celle-ci n'a pas été activée lors de l'analyse des zones de desserte basées sur le temps. L'analyse des zones de desserte avec des valeurs de bornes élevées lors de l'utilisation de la hiérarchie du réseau entraîne généralement moins de traitement que l'analyse des mêmes zones de desserte sans la hiérarchie. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Une valeur Null indique que la hiérarchie ne sera jamais activée ; la valeur du paramètre Utiliser la hiérarchie lors de l’analyse sera toujours respectée. Si le jeu de données réseau en entrée ne prend pas la hiérarchie en charge, une erreur se produit lorsque vous spécifiez une valeur pour ce paramètre. Dans ce cas, vous devez utiliser une valeur Null. | Double |
Force_Hierarchy_beyond_Break_Distance_Value (Facultatif) |
Indique la valeur de borne au-delà de laquelle le solveur forcera la hiérarchie même si celle-ci n'a pas été activée lors de l'analyse des zones de desserte basées sur la distance. L'analyse des zones de desserte avec des valeurs de bornes élevées lors de l'utilisation de la hiérarchie du réseau entraîne généralement moins de traitement que l'analyse des mêmes zones de desserte sans la hiérarchie. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Une valeur Null indique que la hiérarchie ne sera jamais activée ; la valeur du paramètre Utiliser la hiérarchie lors de l’analyse sera toujours respectée. Si le jeu de données réseau en entrée ne prend pas la hiérarchie en charge, une erreur se produit lorsque vous spécifiez une valeur pour ce paramètre. Dans ce cas, vous devez utiliser une valeur Null. | Double |
Save_Output_Network_Analysis_Layer (Facultatif) |
Dans tous les cas, une classe d'entité avec des polygones de zone de desserte est renvoyée. Cependant, un administrateur de serveur peut choisir de générer également une couche d'analyse de réseau pour que la configuration et les résultats de l'outil puissent être débogués à l'aide des commandes de ArcGIS Network Analyst dans l'environnement ArcGIS for Desktop. Le processus de débogage peut en être grandement facilité. Dans ArcGIS for Desktop, l'emplacement en sortie par défaut de la couche d'analyse de réseau se trouve dans le dossier temporaire. Vous pouvez déterminer l'emplacement du dossier temporaire en évaluant la valeur de l'environnement de géotraitement arcpy.env.scratchFolder. La couche d'analyse de réseau en sortie est stockée en tant que fichier LYR dont le nom commence par _ags_gpna et est suivi d'un GUID alphanumérique. | Boolean |
Time_Zone_for_Time_of_Day (Facultatif) | Spécifie les fuseaux horaires du paramètre Heure du jour.
Quel que soit le paramètre Fuseau horaire de l'heure de la journée, toutes les ressources doivent se trouver dans le même fuseau horaire quand Heure du jour a une valeur non nulle et que le paramètre Polygones pour les ressources multiples est défini de sorte à créer des polygones fusionnés qui ne se superposent pas. | String |
Exemple de code
Exécutez l'outil avec les paramètres requis de la fenêtre Python.
import arcpy
facilities = arcpy.FeatureSet()
facilities.load("FireStations")
arcpy.na.GenerateServiceAreas(facilities, "1 2 3", "Minutes", "Streets_ND",
"in_memory\\FireStationServiceAreas")
Le script Python autonome suivant illustre l'utilisation de GenerateServiceAreas afin de déterminer le temps nécessaire pour rejoindre un magasin. Il indique comment générer une zone de desserte à cinq minutes autour de l'emplacement d'un magasin à différentes heures de la journée. Ce type d'analyse peut permettre à une pizzeria, par exemple, de voir comment la zone accessible en cinq minutes à partir du magasin change en fonction des conditions de trafic.
# Name: GenerateServiceAreas_Workflow.py
# Description: Generate a 5 minute service area around a store location at
# different times in a day. Such analysis can be useful, for example
# for a pizza store, to see how the area that can be reached within
# 5 minutes from the store changes based on the current traffic
# conditions.
# Requirements: Network Analyst Extension
#Import system modules
import arcpy
from arcpy import env
import datetime
try:
#Check out the Network Analyst extension license
arcpy.CheckOutExtension("Network")
#Set environment settings
env.workspace = "C:/data/SanFrancisco.gdb"
env.overwriteOutput = True
#Set local variables
inNetworkDataset = "Transportation/Streets_ND"
impedanceAttribute = "TravelTime"
breakValues = "5"
breakUnits = "Minutes"
inFacilities = "Analysis/ExistingStore"
outGeodatabase = "C:/data/output/ServiceAreaOutput.gdb"
serviceArea = "in_memory\\ServiceAreas"
dateFieldName = "StartTime"
nameField = "Name"
#use today at 8 AM as the start time and then increment it by one hour
startTime = datetime.datetime(1899,12,30,8,0,0)
#Create a new feature set with same schema as Facilities parameter in
#Generate Service Areas tool. Load the feature from the ExistingStore
#feature class in the feature set
facilities = arcpy.GetParameterValue("GenerateServiceAreas_na",0)
facilities.load(inFacilities)
#Create an empty feature class with same spatial reference as the
#network dataset and a Date field called StartTime and a text field called Name
outServiceAreas = arcpy.management.CreateFeatureclass(outGeodatabase, "ServiceAreas",
"POLYGON","","","",
inNetworkDataset).getOutput(0)
arcpy.management.AddField(outServiceAreas, dateFieldName, "DATE")
arcpy.management.AddField(outServiceAreas, nameField, "TEXT")
#Open an insert cursor on the feature class to add new polygons
cursor = arcpy.da.InsertCursor(outServiceAreas, ("SHAPE@", nameField,
dateFieldName))
#Geneate a 5 minute service area around the store at every one hour interval
#from 8 AM to 8 PM. Copy the output service area to a new feature class
for i in range(1,14):
timeFormat = startTime.time().strftime("%I %p")
print "Generating {0} {1} service area at {2}".format(breakValues,breakUnits,
timeFormat)
arcpy.na.GenerateServiceAreas(facilities,breakValues,breakUnits,
inNetworkDataset, serviceArea, "TRAVEL_FROM",
startTime, Time_Attribute=impedanceAttribute)
#Get the shape from the output service area so that it can be inserted
#in the feature class
with arcpy.da.SearchCursor(serviceArea,("SHAPE@", nameField)) as inputRows:
row = inputRows.next()
cursor.insertRow((row[0],row[1],startTime))
startTime = startTime + datetime.timedelta(seconds=3600)
del cursor
print "Script completed successfully"
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "An error occured on line %i" % tb.tb_lineno
print str(e)