Passing variable to another script

3405
1
08-25-2015 12:27 AM
ManuelFrias
New Contributor III

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"
0 Kudos
1 Reply
JonMorris2
Occasional Contributor II

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)