I want to make a point layer from a csv file with AIS data (Automated Identification System, i.e., shipping data) . Then I want to make lines using a script called TrackBuilder.
So I have two python scripts: PythonTest.py to make the points and TrackBuilderVersion2_x64.py to make the lines.
I don't know how to tell python to use the variable outFC_Project in TrackBuilderVersion2_x64.py
The error I get is:
exceptions.NameError: name 'outFC_Project' is not defined
PythonTest.py:
#import modules
import arcpy
import os
from arcpy import env
import TrackBuilderVersion2_x64
#Set env settings
env.workspace = "E:/DensityMaps/DensityMapsTest.gdb/"
arcpy.env.overwriteOutput =True
#Define variables
monthTable = "E:/test_division/division_finale2014/file_list_months_weeks/scope_ais_december.csv"
monthPoints = "monthPoints"
x_coords = "long"
y_coords = "lat"
out_Layer = "monthLayer"
path_outLayer = "E:/DensityMaps/"
saved_Layer = "E:/DensityMaps/monthlayer.lyr"
outFC = "MonthFC"
outFC_Project = outFC+"_Project"
#set spatial reference
spRef =arcpy.SpatialReference("WGS 1984")
try:
#Process
arcpy.MakeXYEventLayer_management(monthTable, x_coords, y_coords, out_Layer, spRef, "")
#Save to layer file
arcpy.SaveToLayerFile_management(out_Layer, saved_Layer)
#Copy features to FC
arcpy.CopyFeatures_management(saved_Layer,outFC)
#Set output coordinate system. 3035 = LAEA
outCS = arcpy.SpatialReference(3035)
#Project to LAEA
arcpy.Project_management(outFC, outFC_Project, outCS)
#Calling trackbuilder
TrackBuilderVersion2_x64
#Delete temporary files
arcpy.Delete_management('monthLayer')
os.remove(saved_Layer)
#Check messages
print(arcpy.GetMessages())
except:
print arcpy.GetMessages()
print 'Script completed'TrackBuilderVersion2_x64.py (only first lines, see the complete script in attachment):
#Import PythonTest.py to get the variable month import PythonTest #print "Testing printing "+PythonTest.outFC print "Printing test "+PythonTest.outFC_Project #Path to input points (broadcast feature class) sInputFile = outFC_Project #ID field name (can keep as is most likely) sID_Field = "mmsi" #DaeTime field name (can keep as is most likely) sDT_Field = "timestamp_pretty" #Path to output workspace (file geodatabase) sOutWorkspace = r"E:/DensityMaps/DensityMapsTest.gdb" #name of output trackline feature class sOutName = "MonthTest" #Break Track line method option (comment/uncomment the selected option) sLineMethod = "Maximum Time and Distance" #sLineMethod = "Time Interval" #Maximum Time in minutes (keep as string in quotes, use 0 if using Time Interval method, default = 60) sMaxTimeMinutes = "600" #Maximum Distance in miles (keep as string in quotes, use 0 if using Time Interval method, default = 6) sMaxDistMiles = "150" #Time Interval in hours (keep as string in quotes, use 0 if using Maximum Time and Distance method, default = 24) sIntervalHours = "0" #Include Voyage Attributes (comment/uncomment the selected option) #sAddVoyageData = "true" sAddVoyageData = "false" #Voyage Table (path to voyage table) - OPTIONAL #voyageTable = r"D:\AISTrackBuilder\Test\test.gdb\Voyage" #Voyage Matching Option (comment/uncomment the selected option) - OPTIONAL #voyageMethod = "Most Frequent" #voyageMethod = "First" #Include Vessel Attributes (comment/uncomment the selected option) #sAddVesselData = "true" sAddVesselData = "false" #Vessel Table (path to vessel table) - OPTIONAL #vesselTable = r"D:\AISTrackBuilder\Test\test.gdb\Vessel"
You need to set the output parameter at the end of PythonTest.py:
arcpy.SetParameter(1, outFC_Project)
then TrackBuilderVersion2_x64.py can use it as an input:
outFC_Project = arcpy.GetParameterAsText(1)