POST
|
Chris, Thanks for all of the information. I have been absorbing everything about python the past couple months that I can. I think I am going to apply both options, first the second just to get a product going, then write the entire thing in python for future use. Thanks again for all of your help. -Chris
... View more
07-25-2011
07:04 AM
|
0
|
0
|
188
|
POST
|
You can't put model variables inside the Calculate Value codeblock. Here's how you do that: Expression: getTime("%Time Frame%") Code block: def getTIME(TF):)
if TF == "5 Minutes":
(...)
So, by making the list in a dictionary, I can then read the Time Frame variable, and based on that String value, get my shorthand string value that is used in the naming convention of my tables?
... View more
06-24-2011
10:13 AM
|
0
|
0
|
1067
|
POST
|
Yeah, I was told the same about ditching model builder from others who have been fortunate to know enough python. Unfortunately I chose to take more GIS classes rather than programming when I was a student, but I would really like to learn more Python. Here is the code output from the model I am building. Maybe it will make more sense to have it posted. # Import arcpy module
import arcpy
# Check out any necessary licenses
arcpy.CheckOutExtension("spatial")
# Script arguments
Climate_Variable = arcpy.GetParameterAsText(0)
Time_Frame = arcpy.GetParameterAsText(1)
if Time_Frame == '#' or not Time_Frame:
Time_Frame = "5 Minutes" # provide a default value if unspecified
Month = arcpy.GetParameterAsText(2)
if Month == '#' or not Month:
Month = "6" # provide a default value if unspecified
Day = arcpy.GetParameterAsText(3)
if Day == '#' or not Day:
Day = "16" # provide a default value if unspecified
Year = arcpy.GetParameterAsText(4)
if Year == '#' or not Year:
Year = "2011" # provide a default value if unspecified
# Local variables:
GIS_Files = "C:\\Users\\Chris\\Desktop\\WKU Summer\\Model\\GIS Files"
Tables_Workspace = "C:\\Users\\Chris\\Desktop\\WKU Summer\\Model\\Tables"
PYCLIM = Climate_Variable
v_PYCLIM__idw = PYCLIM
v_FILE_ = v_PYCLIM__idw
DBF = Time_Frame
MesoPoints = DBF
TF = Time_Frame
DATE = Month
Kentucky_shp = "C:\\Users\\Chris\\Desktop\\WKU Summer\\Projected Data\\Kentucky.shp"
v_DATE___TF__csv = "%DATE%_%TF%.csv"
# Process: Calculate Date Value
arcpy.CalculateValue_management("%Month%&\"-\"&%Day%&\"-\"&%Year%", "", "String")
# Process: Calculate Time Frame Name
arcpy.CalculateValue_management("getTIME(TF)", "def getTIME(TF):\\n time = str(%Time Frame%)\\n if time == \"5 Minutes\":\\n TF = \"5min\"\\n elif time == \"30 minutes\":\\n TF = \"30min\"\\n elif time == \"1 hour\":\\n TF = \"1hr\"\\n elif time == \"6 Hours\":\\n TF = \"6hr\"\\n elif time == \"12 Hours\":\\n TF = \"12hr\"\\n elif time == \"1 Day\":\\n TF = \"1dy\"\\n elif time == \"3 Days\":\\n TF = \"3dy\"\\n elif time == \"5 Days\":\\n TF = \"5dy\"\\n elif time == \"1 Week\":\\n TF = \"1wk\"\\n elif time == \"2 Weeks\":\\n TF = \"2wk\"\\n elif time == \"1 Month\":\\n TF = \"1mo\"\\n elif time == \"3 Months\":\\n TF = \"3mo\"\\n elif time == \"6 Months\":\\n TF = \"6mo\"\\n elif time == \"1 Year\":\\n TF = \"1yr\"\\n else:\\n TF = \"SOL!\"\\n return TF", "String")
# Process: Make DBF
arcpy.TableToTable_conversion(v_DATE___TF__csv, Tables_Workspace, "%DATE%_%TF%", "", "", "")
# Process: Create Mesonet Sites
arcpy.ConvertCoordinateNotation_management(DBF, MesoPoints, "LONG_", "LAT", "DD", "DD", "", "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]];-400 -400 1000000000;-100000 10000;-100000 10000;8.98315284119521E-09;0.001;0.001;IsHighPrecision")
# Process: Calculate Field Name Value
arcpy.CalculateValue_management("getCLIMVAR(PYCLIM)", "def getCLIMVAR(PYCLIM):\\n climvar == str(%Climate Variable%)\\n if climvar == \"Current Temperature\":\\n PYCLIM == \"CUR_TEMP\"\\n return PYCLIM\\n elif climvar == \"High Temperature\":\\n PYCLIM == \"HI_TEMP\"\\n return PYCLIM\\n elif climvar == \"Low Temperature\":\\n PYCLIM == \"LOW_TEMP\"\\n return PYCLIM\\n elif climvar == \"Wind Chill Temperature\":\\n PYCLIM == \"CHILL_TEMP\"\\n return PYCLIM\\n elif climvar == \"Dew Point Temperature\":\\n PYCLIM == \"DEW_TEMP\"\\n return PYCLIM\\n elif climvar == \"Relative Humidty\":\\n PYCLIM == \"REL_HUMID\"\\n return PYCLIM\\n elif climvar == \"Solar Radiation\":\\n PYCLIM == \"SOL_RAD\"\\n return PYCLIM\\n elif climvar == \"Wind Speed\":\\n PYCLIM == \"WIND_SPEED\"\\n return PYCLIM", "String")
# Process: IDW
arcpy.gp.Idw_sa(MesoPoints, "%PYCLIM%", v_PYCLIM__idw, "", "2", "VARIABLE 12", "")
# Process: Calculate File Name Value
arcpy.CalculateValue_management("%PYCLIM%_%DATE%_%TF%", "", "String")
# Process: Extract by Mask
arcpy.gp.ExtractByMask_sa(v_PYCLIM__idw, Kentucky_shp, v_FILE_)
... View more
06-17-2011
02:49 PM
|
0
|
0
|
1067
|
POST
|
I am really having trouble with these "If" statements... I tried using the one Jason provided me as a template for another one and I keep getting the syntax error on Line 2. def getTIME(TF):
time == str(%Time Frame%)
if time == "5 Minutes":
TF == "5min"
return TF
elif time == "30 minutes":
TF == "30min"
return TF
elif time =="1 hour":
TF == "1hr"
return TF
elif time == "6 Hours":
TF == "6hr"
return TF
elif time == "12 Hours":
TF == "12hr"
return TF
elif time == "1 Day":
TF == "1dy"
return TF
elif time == "3 Days":
TF == "3dy"
return TF
elif time == "5 Days":
TF == "5dy"
return TF
elif time == "1 Week":
TF == "1wk"
return TF
elif time == "2 Weeks":
TF == "2wk"
return TF
elif time == "1 Month":
TF == "1mo"
return TF
elif time == "3 Months":
TF == "3mo"
return TF
elif time == "6 Months":
TF == "6mo"
return TF
elif time == "1 Year":
TF == "1yr"
return TF I tried making it only 3 spaces on indentation and that still didn't help.
... View more
06-17-2011
12:47 PM
|
0
|
0
|
1067
|
POST
|
Chris although the amended "if" statement will work, you might want to start investigating Python dictionaries as a data structure to return/access information (aka values) based upon "keys". Build the dictionary, then use it within a def to return the required values...makes a convoluted if statement much easier since you just need to update and reuse the dictionary without having to rebuild a big "if" statement. Dan, thanks for the tip. These "Keys"; can they access values generated by a tool parameter? Those are the values I am referencing. For instance, say I have a variable calculated from other input parameters called DATE (calculated by concatenating %MONTH%&"-"&%DAY%&"-"&%YEAR%; which are the input parameters). This DATE value is needed to locate a file, using the DATE value in the file name. I am using a code similar to the one above to take the input value of another parameter, and calculate a different string, which is then concatenated with the DATE value for the full file name. If using dictionaries and keys will make this easier on me then I am all about using them. Just didn't know if they would work for what I was doing.
... View more
06-17-2011
12:03 PM
|
0
|
0
|
1067
|
POST
|
def getCLIMVAR(PYCLIM):
climvar = str(%Climate Variable%)
if climvar == "Current Temperature":
PYCLIM = "CUR_TEMP"
return PYCLIM
elif climvar == "High Temperature":
PYCLIM == "HI_TEMP"
return PYCLIM
elif climvar == "Low Temperature":
PYCLIM == "LOW_TEMP"
return PYCLIM
elif climvar == "Wind Chill Temperature":
PYCLIM == "CHILL_TEMP"
return PYCLIM
elif climvar == "Dew Point Temperature":
PYCLIM == "DEW_TEMP"
return PYCLIM
elif climvar == "Relative Humidty":
PYCLIM == "REL_HUMID"
return PYCLIM
elif climvar == "Solar Radiation":
PYCLIM == "SOL_RAD"
return PYCLIM
elif climvar == "Wind Speed":
PYCLIM == "WIND_SPEED"
return PYCLIM
Jason, thanks, so was just the indentation wrong? If so, what do I need to do in the future so I don't have this problem again?
... View more
06-17-2011
11:54 AM
|
0
|
0
|
1067
|
POST
|
Hello, I am new to Python, and programming all together really. I am building a model where I want the user to select from a drop down list a value for a parameter (Climate Variable). I then want to use the Calculate Value tool to then get a string value for a variable that will be used to choose a field from a feature attribute table (PYCLIM). I wrote this If Statement (which I believe is wrong) to do such and I am getting the 000989 syntax error on Line 1. def getCLIMVAR(PYCLIM):
climvar = str(%Climate Variable%):
if climvar == "Current Temperature":
PYCLIM = "CUR_TEMP"
return PYCLIM
elif climvar == "High Temperature":
PYCLIM == "HI_TEMP"
return PYCLIM
elif climvar == "Low Temperature":
PYCLIM == "LOW_TEMP"
return PYCLIM
elif climvar == "Wind Chill Temperature":
PYCLIM == "CHILL_TEMP"
return PYCLIM
elif climvar == "Dew Point Temperature":
PYCLIM == "DEW_TEMP"
return PYCLIM
elif climvar == "High Temperature":
PYCLIM == "HI_TEMP"
return PYCLIM
elif climvar == "Relative Humidty":
PYCLIM == "REL_HUMID"
return PYCLIM
elif climvar == "Solar Radiation":
PYCLIM == "SOL_RAD"
return PYCLIM
elif climvar == "Wind Speed":
PYCLIM == "WIND_SPEED"
return PYCLIM
else climvar == "Highest Wind Gust":
PYCLIM == "HI_WIND_GUS"
return PYCLIM Any help would be appreciated. Thank you in advance! If the code is horrible, please understand that I wrote this without ANY python experience.
... View more
06-16-2011
01:07 PM
|
0
|
11
|
4339
|
POST
|
Nomeus, Thanks for the suggestion! I will definitely remember to do that, and I am sure it will reduce the number of curse words and headaches I get when working with my extensive model creations, haha! Thanks again! Chris
... View more
04-22-2011
12:10 PM
|
0
|
0
|
487
|
POST
|
I just ran the model again and it did 100 successful iterations... So confusing where this lock is, I literally run the model and leave the computer alone. I get error 601, it cannot delete a raster (that is has successfully overwritten 100 times before..) due to "May be locked by another application." No other applications are opened.
... View more
04-10-2011
12:18 PM
|
0
|
0
|
487
|
POST
|
Hello, I am trying to iterate through a shapefile, by making a selection of features, copying the features (to create a separate file), convert to raster, identify the null values, use raster calculator to change the values around in the raster and store it in an output folder. The iteration starts to run, gets through about 20 of 400+ iterations and then ends, with an error stating one of my rasters that needs to be overwritten is locked. No other applications are opened on my computer, no additional windows are opened in arcmap, so I am lost. Plus, if the file is locked, how did the first 20 or so iterations run just fine? Every time I try to run it again, the error occurs at a different iteration count, so it is not the same selection causing the error. Hope I explained the issue appropriately and someone can help. Thank you in advance!
... View more
04-10-2011
10:45 AM
|
0
|
4
|
2587
|
POST
|
I fixed the issue, my SQL needed to say: DATE_ = date '%Value%'
... View more
04-07-2011
10:47 PM
|
0
|
0
|
472
|
POST
|
Here is the model I have started. I can't seem to get the SQL correct for it to work. "DATE_" = Value I have also tried: "DATE_" = %Value%
... View more
04-07-2011
10:21 PM
|
0
|
0
|
472
|
POST
|
Hello All, I am trying to figure out a way to select records from a shapefile (a specific date in (m)m/(d)d/yyyy format, (m) and (d) only for double digits) and export the selection to create a new shapefile. The issue is I have over 400 of these dates, and rather than selecting each one individually, right clicking the layer, exporting the data, wash, rinse repeat, I'd like to figure out a way to do this like an iteration in modelbuilder. I read over this post: http://forums.arcgis.com/threads/27764-Model-Iterator-for-Date-Ranges It sounds similar to what I am doing except I only have one field for a date, and I just need to select and extract features with similar dates. Also, I am a newbie with modelbuilder and I don't really mess with python, so the script in the forum above is like reading a different language. Any help is appreciated and thank you in advance! Best, Chris
... View more
04-07-2011
09:36 PM
|
0
|
3
|
2496
|
POST
|
Giuseppe, This is a link to a TOC/Legend widget that supports rasters and vectors. Make sure to have SP1 if you're using version 10. Best, Chris http://www.arcgis.com/home/item.html?id=cd57c351fb9a4167853c04ec9380c8b1
... View more
03-29-2011
10:44 PM
|
0
|
0
|
891
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|