Python equivalents to AML functions

Geoprocessing in ArcGIS is the execution of a tool to create new information from existing information. Results are typically used as input to subsequent tools to automate a workflow, typically involving data management, spatial analysis, data conversion tasks or a combination of all three. Geoprocessing has been around for many years, with ArcInfo Workstation being one of the first products to provide a rich collection of GIS operations, or commands, and a flexible framework for using them, the Arc Macro Language (AML).

ArcGIS 9 introduced a new set of GIS operators and a new framework for using them. Many of the operators are familiar to any ArcInfo Workstation user, such as Union or Clip, as names were maintained whenever possible. ArcGIS 9.0 also added support for scripting languages, such as Python, so more complex workflows often used in AML could also be written but using non proprietary languages that provided more capabilities than AML.

The effort to maintain a relationship between command and tool names between ArcInfo Workstation and ArcGIS 9 was also extended to the scripting model, with many procedures remaining similar in nature. Where possible, the ease of use in AML was maintained in ArcGIS, such as listing data in a workspace or describing the properties of a dataset. The goal is that any AML user can quickly learn to write a geoprocessing script with ArcGIS.

To assist in this transition, the below equivalents outline how to perform AML functions, but using Python. Not all AML functions and directives necessarily apply to the new model, as some were directly related to the ArcInfo Workstation's environment (such as the SHOW function), while others (such as LISTFILE), are better supported by Python itself, rather than ArcGIS geoprocessing components. Many examples use general Python modules in conjunction with ArcGIS Python functionality.

Learn more about Python equivalents to AML directives

AML function equivalents

ABS < x >

AML function
abs(x)

ACCESS < path >

AML function
import arcpy
arcpy.TestSchemaLock(path)

ACOS < x >

AML function
import math
math.acos(x)

AFTER < s > < search_s >

AML function
s[s.find(search_s) + 1:]

ANGRAD

AML function

<not applicable>

ASIN < x >

AML function
import math
math.asin(x)

ATAN < x >

AML function
import math
math.atan(x)

ATAN2 < y > < x >

AML function
import math
math.atan2(y, x)

BEFORE < s > < search_s >

AML function
s[:s.find(search_s)]

CALC < expression >

AML function
import arcpy
arcpy.CalculateValue_management(expression)

CLOSE < file_unit >

AML function
file_unit.close()

COLUMNINFO

AML function

<not applicable>

COPY < input > < output >

AML function
import arcpy
arcpy.Copy_management(input, output)

COS < x >

AML function
import math
math.cos(x)

CVTDISTANCE

AML function

<not applicable>

DATE -DEFAULT

AML function
import time
time.strftime("%y-%m-%d", time.localtime())

DATE -FULL

AML function
import time
time.strftime("%y-%m-%d.%H:%M:%S.%a", time.localtime())

DATE -USA

AML function
import time
time.strftime("%m/%d/%y", time.localtime())

DATE -UFULL

AML function
import time
time.strftime("%m/%d/%y.%H:%M:%S.%a", time.localtime())

DATE -VFULL

AML function
import time
time.strftime("%d %b %y %H:%M:%S %A", time.localtime())

DATE -DAY

AML function
import time
time.strftime("%d", time.localtime())

DATE -MONTH

AML function
import time
time.strftime("%B", time.localtime())

DATE -YEAR

AML function
import time
time.strftime("%Y", time.localtime())

DATE -VIS

AML function
import time
time.strftime("%d %b %y", time.localtime())

DATE -TIME

AML function
import time
time.strftime("%H:%M:%S", time.localtime())

DATE -AMPM

AML function
import time
time.strftime("%I:%M %p", time.localtime())

DATE -DOW

AML function
import time
time.strftime("%A", time.localtime())

DATE -CAL

AML function
import time
time.strftime("%B %d, %Y", time.localtime())

DATE -TAG

AML function
import time
time.strftime("%y%m%d", time.localtime())

DATE -FTAG

AML function
import time
time.strftime("%y%m%d.%H%M%S", time.localtime())

DATE -DFMT

AML function
import time
time.strftime(s, time.localtime())
# Format string (s) using below
#   %% same as % 
#   %a day of week, using locale's abbreviated weekday names 
#   %A day of week, using locale's full weekday names 
#   %b,%h month, using locale's abbreviated month names 
#   %B month, using locale's full month names #%c date and time as %x %X 
#   %d day of month (01-31) 
#   %H hour (00-23) 
#   %I hour (00-12) 
#   %j day number of year (001-366) 
#   %m month number (01-12) 
#   %M minute (00-59) 
#   %p locale's equivalent of AM or PM, whichever is appropriate 
#   %r time as %I:%M:%S %p 
#   %S seconds (00-59) 
#   %U week number of year (01-52), Sunday is the first day of the week 
#   %w day of week; Sunday is day 0 
#   %W week number of year (01-52), Monday is the first 
#   %x date, using locale's date format 
#   %X time, using locale's time format 
#   %y year within century (00-99) 
#   %Y year, including century (for example, 1994) 
#   %Z time zone abbreviation

DELETE < path >

AML function
import arcpy
arcpy.Delete_management(path)

DIGNUM

AML function

<not applicable>

DIR < file >

AML function
import os
os.path.dirname(file)

ENTRYNAME < file > -EXT

AML function
import os
os.path.basename(file)

ENTRYNAME < file > -NOEXT

AML function
import os
os.path.splitext(file)[0]

ENTRYNAME < file > -EXTONLY

AML function
import os
os.path.splitext(file)[1]

EXISTS < file >

AML function
import arcpy
arcpy.Exists(file)

EXP < x >

AML function
import math
math.exp(x)

EXTRACT < pos > < elements >

AML function
#elements are blank separated
elements.split()[pos - 1]

EXTRACT < pos > < elements >

AML function
#elements are comma separated
elements.split(",")[pos - 1]

FILELIST

AML function

<not applicable>

FORMAT < format > { exp1 exp2 }

AML function
"First %s, second %s" % (exp1, exp2)

FORMATDATE

AML function

<not applicable>

GETCHAR < prompt >

AML function
raw_input(prompt)

GETCHOICE < choices > < prompt > <-SORT>

AML function
from Tkinter import *
def PopupList(title, list):
    root = Tk()
    root.title(title)
    root.protocol("WM_DELETE_WINDOW", root.quit)
    frame = Frame(root)
    vScrollbar = Scrollbar(frame, orient=VERTICAL)
    hScrollbar = Scrollbar(frame, orient=HORIZONTAL)
    listbox = Listbox(frame, selectmode=SINGLE, xscrollcommand=hScrollbar.set, yscrollcommand=vScrollbar.set)
    vScrollbar.config(command=listbox.yview)
    vScrollbar.pack(side=RIGHT, fill=Y)
    hScrollbar.config(command=listbox.xview)
    hScrollbar.pack(side=BOTTOM, fill=Y)
    listbox.pack(side=LEFT, fill=BOTH, expand=1)
    frame.pack()
    for a in list:
        listbox.insert(END, a)
    listbox.bind("<Double-Button-1>", PopupList_callback)
    listbox.selection_set(0)
    root.mainloop()
    index = listbox.curselection()
    entry = listbox.get(index)
    root.destroy()
    return entry
def PopupList_callback(event):
    event.widget.quit()

list = choices.split()
list.sort()
print PopupList(prompt, list)

GETCOVER < workspace > < wildcard > < prompt > <-SORT>

AML function
from Tkinter import *
def PopupList(title, list):
    root = Tk()
    root.title(title)
    root.protocol("WM_DELETE_WINDOW", root.quit)
    frame = Frame(root)
    vScrollbar = Scrollbar(frame, orient=VERTICAL)
    hScrollbar = Scrollbar(frame, orient=HORIZONTAL)
    listbox = Listbox(frame, selectmode=SINGLE, xscrollcommand=hScrollbar.set, yscrollcommand=vScrollbar.set)
    vScrollbar.config(command=listbox.yview)
    vScrollbar.pack(side=RIGHT, fill=Y)
    hScrollbar.config(command=listbox.xview)
    hScrollbar.pack(side=BOTTOM, fill=Y)
    listbox.pack(side=LEFT, fill=BOTH, expand=1)
    frame.pack()
    for a in list:
        listbox.insert(END, a)
    listbox.bind("<Double-Button-1>", PopupList_callback)
    listbox.selection_set(0)
    root.mainloop()
    index = listbox.curselection()
    entry = listbox.get(index)
    root.destroy()
    return entry
def PopupList_callback(event):
    event.widget.quit()

import arcpy

arcpy.env.workspace = workspace

list = arcpy.ListDatasets(wildcard, "cover")
list.sort()
print PopupList(prompt, list)

GETDATABASE

AML function

<not applicable>

GETDATALAYER

AML function

<not applicable>

GETDEFLAYERS

AML function

<not applicable>

GETFILE < wildcard > <-INFO> < prompt > <-SORT>

AML function
# Assumes arcpy.env.workspace is set
#
from Tkinter import *
def PopupList(title, list):
    root = Tk()
    root.title(title)
    root.protocol("WM_DELETE_WINDOW", root.quit)
    frame = Frame(root)
    vScrollbar = Scrollbar(frame, orient=VERTICAL)
    hScrollbar = Scrollbar(frame, orient=HORIZONTAL)
    listbox = Listbox(frame, selectmode=SINGLE, xscrollcommand=hScrollbar.set, yscrollcommand=vScrollbar.set)
    vScrollbar.config(command=listbox.yview)
    vScrollbar.pack(side=RIGHT, fill=Y)
    hScrollbar.config(command=listbox.xview)
    hScrollbar.pack(side=BOTTOM, fill=Y)
    listbox.pack(side=LEFT, fill=BOTH, expand=1)
    frame.pack()
    for a in list:
        listbox.insert(END, a)
    listbox.bind("<Double-Button-1>", PopupList_callback)
    listbox.selection_set(0)
    root.mainloop()
    index = listbox.curselection()
    entry = listbox.get(index)
    root.destroy()
    return entry
def PopupList_callback(event):
    event.widget.quit()

import arcpy

list = arcpy.ListTables(wildcard, "INFO")
list.sort()
print PopupList(prompt, list)

GETFILE < wildcard > <-WORKSPACE> < prompt > <-SORT>

AML function
# Assumes arcpy.env.workspace is set
#
from Tkinter import *
def PopupList(title, list):
    root = Tk()
    root.title(title)
    root.protocol("WM_DELETE_WINDOW", root.quit)
    frame = Frame(root)
    vScrollbar = Scrollbar(frame, orient=VERTICAL)
    hScrollbar = Scrollbar(frame, orient=HORIZONTAL)
    listbox = Listbox(frame, selectmode=SINGLE, xscrollcommand=hScrollbar.set, yscrollcommand=vScrollbar.set)
    vScrollbar.config(command=listbox.yview)
    vScrollbar.pack(side=RIGHT, fill=Y)
    hScrollbar.config(command=listbox.xview)
    hScrollbar.pack(side=BOTTOM, fill=Y)
    listbox.pack(side=LEFT, fill=BOTH, expand=1)
    frame.pack()
    for a in list:
        listbox.insert(END, a)
    listbox.bind("<Double-Button-1>", PopupList_callback)
    listbox.selection_set(0)
    root.mainloop()
    index = listbox.curselection()
    entry = listbox.get(index)
    root.destroy()
    return entry
def PopupList_callback(event):
    event.widget.quit()

import arcpy

list = arcpy.ListWorkspaces(wildcard, "COVERAGES")
list.sort()
print PopupList(prompt, list)

GETFILE <wildcard> <-FILE> < prompt > <-SORT>

AML function
# Assumes arcpy.env.workspace is set
#
from Tkinter import *
def PopupList(title, list):
    root = Tk()
    root.title(title)
    root.protocol("WM_DELETE_WINDOW", root.quit)
    frame = Frame(root)
    vScrollbar = Scrollbar(frame, orient=VERTICAL)
    hScrollbar = Scrollbar(frame, orient=HORIZONTAL)
    listbox = Listbox(frame, selectmode=SINGLE, xscrollcommand=hScrollbar.set, yscrollcommand=vScrollbar.set)
    vScrollbar.config(command=listbox.yview)
    vScrollbar.pack(side=RIGHT, fill=Y)
    hScrollbar.config(command=listbox.xview)
    hScrollbar.pack(side=BOTTOM, fill=Y)
    listbox.pack(side=LEFT, fill=BOTH, expand=1)
    frame.pack()
    for a in list:
        listbox.insert(END, a)
    listbox.bind("<Double-Button-1>", PopupList_callback)
    listbox.selection_set(0)
    root.mainloop()
    index = listbox.curselection()
    entry = listbox.get(index)
    root.destroy()
    return entry
def PopupList_callback(event):
    event.widget.quit()

import arcpy
import dircache
import os

list = arcpy.ListFiles()
list.sort()
print PopupList(prompt, list)

GETFILE <wildcard> <-DIRECTORY> < prompt > <-SORT>

AML function
# Assumes arcpy.env.workspace is set
#
def PopupList(title, list):
    root = Tk()
    root.title(title)
    root.protocol("WM_DELETE_WINDOW", root.quit)
    frame = Frame(root)
    vScrollbar = Scrollbar(frame, orient=VERTICAL)
    hScrollbar = Scrollbar(frame, orient=HORIZONTAL)
    listbox = Listbox(frame, selectmode=SINGLE, xscrollcommand=hScrollbar.set, yscrollcommand=vScrollbar.set)
    vScrollbar.config(command=listbox.yview)
    vScrollbar.pack(side=RIGHT, fill=Y)
    hScrollbar.config(command=listbox.xview)
    hScrollbar.pack(side=BOTTOM, fill=Y)
    listbox.pack(side=LEFT, fill=BOTH, expand=1)
    frame.pack()
    for a in list:
        listbox.insert(END, a)
    listbox.bind("<Double-Button-1>", PopupList_callback)
    listbox.selection_set(0)
    root.mainloop()
    index = listbox.curselection()
    entry = listbox.get(index)
    root.destroy()
    return entry
def PopupList_callback(event):
    event.widget.quit()

import arcpy 
import dircache
import os

list = arcpy.ListFiles()
list.sort()
print PopupList(prompt, list)

GETGRID < workspace > < wildcard > < prompt > <-SORT>

AML function
from Tkinter import *
def PopupList(title, list):
    root = Tk()
    root.title(title)
    root.protocol("WM_DELETE_WINDOW", root.quit)
    frame = Frame(root)
    vScrollbar = Scrollbar(frame, orient=VERTICAL)
    hScrollbar = Scrollbar(frame, orient=HORIZONTAL)
    listbox = Listbox(frame, selectmode=SINGLE, xscrollcommand=hScrollbar.set, yscrollcommand=vScrollbar.set)
    vScrollbar.config(command=listbox.yview)
    vScrollbar.pack(side=RIGHT, fill=Y)
    hScrollbar.config(command=listbox.xview)
    hScrollbar.pack(side=BOTTOM, fill=Y)
    listbox.pack(side=LEFT, fill=BOTH, expand=1)
    frame.pack()
    for a in list:
        listbox.insert(END, a)
    listbox.bind("<Double-Button-1>", PopupList_callback)
    listbox.selection_set(0)
    root.mainloop()
    index = listbox.curselection()
    entry = listbox.get(index)
    root.destroy()
    return entry
def PopupList_callback(event):
    event.widget.quit()

import arcpy

arcpy.env.workspace = workspace

list = arcpy.ListRasters(wildcard, "GRID")
list.sort()
print PopupList(prompt, list)

GETIMAGE < workspace > < wildcard > < type > < prompt > <-SORT>

AML function
# Type mapping:
#  -ALL use "" (blank)
#  -BMP use bmp
#  -TIFF use tiff
#  -IMAGINE use img	

from Tkinter import *
def PopupList(title, list):
    root = Tk()
    root.title(title)
    root.protocol("WM_DELETE_WINDOW", root.quit)
    frame = Frame(root)
    vScrollbar = Scrollbar(frame, orient=VERTICAL)
    hScrollbar = Scrollbar(frame, orient=HORIZONTAL)
    listbox = Listbox(frame, selectmode=SINGLE, xscrollcommand=hScrollbar.set, yscrollcommand=vScrollbar.set)
    vScrollbar.config(command=listbox.yview)
    vScrollbar.pack(side=RIGHT, fill=Y)
    hScrollbar.config(command=listbox.xview)
    hScrollbar.pack(side=BOTTOM, fill=Y)
    listbox.pack(side=LEFT, fill=BOTH, expand=1)
    frame.pack()
    for a in list:
        listbox.insert(END, a)
    listbox.bind("<Double-Button-1>", PopupList_callback)
    listbox.selection_set(0)
    root.mainloop()
    index = listbox.curselection()
    entry = listbox.get(index)
    root.destroy()
    return entry
def PopupList_callback(event):
    event.widget.quit()

import arcpy

arcpy.env.workspace = workspace

list = arcpy.ListRasters(wildcard, type)
list.sort()
print PopupList(prompt, list)

GETITEM < path > < prompt > <-SORT>

AML function
from Tkinter import *
def PopupList(title, list):
	root = Tk()
	root.title(title)
	root.protocol("WM_DELETE_WINDOW", root.quit)
	frame = Frame(root)
	vScrollbar = Scrollbar(frame, orient=VERTICAL)
	hScrollbar = Scrollbar(frame, orient=HORIZONTAL)
	listbox = Listbox(frame, selectmode=SINGLE, xscrollcommand=hScrollbar.set, yscrollcommand=vScrollbar.set)
	vScrollbar.config(command=listbox.yview)
	vScrollbar.pack(side=RIGHT, fill=Y)
	hScrollbar.config(command=listbox.xview)
	hScrollbar.pack(side=BOTTOM, fill=Y)
	listbox.pack(side=LEFT, fill=BOTH, expand=1)
	frame.pack()
	for a in list:
		listbox.insert(END, a)
		listbox.bind("<Double-Button-1>", PopupList_callback)
		listbox.selection_set(0)
	root.mainloop()
	index = listbox.curselection()
	entry = listbox.get(index)
	root.destroy()
	return entry
def PopupList_callback(event):
        event.widget.quit()

import arcpy

list = []
pFields = arcpy.ListFields(path)
for field in pFields:
        list.append(pField.name)
list.sort()
print PopupList(prompt, list)

GETLAYERCOLS

AML function

<not applicable>

GETLIBRARY

AML function

<not applicable>

GETSTACK

AML function

<not applicable>

GETSYMBOL

AML function

<not applicable>

GETTIN < workspace > < wildcard > < prompt > <-SORT>

AML function
from Tkinter import *
def PopupList(title, list):
    root = Tk()
    root.title(title)
    root.protocol("WM_DELETE_WINDOW", root.quit)
    frame = Frame(root)
    vScrollbar = Scrollbar(frame, orient=VERTICAL)
    hScrollbar = Scrollbar(frame, orient=HORIZONTAL)
    listbox = Listbox(frame, selectmode=SINGLE, xscrollcommand=hScrollbar.set, yscrollcommand=vScrollbar.set)
    vScrollbar.config(command=listbox.yview)
    vScrollbar.pack(side=RIGHT, fill=Y)
    hScrollbar.config(command=listbox.xview)
    hScrollbar.pack(side=BOTTOM, fill=Y)
    listbox.pack(side=LEFT, fill=BOTH, expand=1)
    frame.pack()
    for a in list:
        listbox.insert(END, a)
    listbox.bind("<Double-Button-1>", PopupList_callback)
    listbox.selection_set(0)
    root.mainloop()
    index = listbox.curselection()
    entry = listbox.get(index)
    root.destroy()
    return entry
def PopupList_callback(event):
    event.widget.quit()

import arcpy

arcpy.env.workspace = workspace

list = arcpy.ListDatasets(wildcard, "tin")
list.sort()
print PopupList(prompt, list)

GETUNIQUE < path > < item > < prompt >

AML function
from Tkinter import *
def PopupList(title, list):
    root = Tk()
    root.title(title)
    root.protocol("WM_DELETE_WINDOW", root.quit)
    frame = Frame(root)
    vScrollbar = Scrollbar(frame, orient=VERTICAL)
    hScrollbar = Scrollbar(frame, orient=HORIZONTAL)
    listbox = Listbox(frame, selectmode=SINGLE, xscrollcommand=hScrollbar.set, yscrollcommand=vScrollbar.set)
    vScrollbar.config(command=listbox.yview)
    vScrollbar.pack(side=RIGHT, fill=Y)
    hScrollbar.config(command=listbox.xview)
    hScrollbar.pack(side=BOTTOM, fill=Y)
    listbox.pack(side=LEFT, fill=BOTH, expand=1)
    frame.pack()
    for a in list:
        listbox.insert(END, a)
    listbox.bind("<Double-Button-1>", PopupList_callback)
    listbox.selection_set(0)
    root.mainloop()
    index = listbox.curselection()
    entry = listbox.get(index)
    root.destroy()
    return entry
def PopupList_callback(event):
    event.widget.quit()

import arcpy

list = []
rows = arcpy.da.SearchCursor(path, [item])
for row in rows:
    list.append(row[0])

list.sort()
count = len(list)
pos = 1
prev = list[0]
while pos < count:
    if prev == list[pos]:
        del(list[pos])
        count = count - 1
    else:
        prev = list[pos]
        pos = pos + 1
print PopupList(prompt, list)

IACCLOSE

AML function

<not applicable>

IACCONNECT

AML function

<not applicable>

IACDISCONNECT

AML function

<not applicable>

IACOPEN

AML function

<not applicable>

IACREQUEST

AML function

<not applicable>

INDEX < s > < search >

AML function
s.find(search) + 1

INVANGLE < x1 y1 x2 y2 >

AML function
import math
dx = x2 - x1
dy = y2 - y1
if dx == 0.0 and dy == 0.0:
    angle = 0
else:
    angle = math.atan2(math.fabs(dy), math.fabs(dx))
    if dx < 0.0:
        angle = 180.0 - angle
    if dy < 0.0:
        angle = 360.0 - angle

INVDISTANCE < x1 y1 x2 y2 >

AML function
import math
dist = math.sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1))

ITEMINFO < specifier > < item >

AML function
import arcpy

fields = arcpy.ListFields(specifier)
for field in fields:
    if field.name.lower() ==  item.lower():
        print field.name
        print field.length
        break

JOINFILE < obj1 > < obj2 > -file -sub

AML function
import os
os.path.join(obj1, obj2)

JOINFILE < obj1 > < obj2 >-ext

AML function
if obj2[0] == ".":
    obj1+ obj2
else:
    obj1 + "." + obj2

KEYWORD < search_string > < keywords >

AML function
import re

def keyword(search_string, keywords):
    found = 0
    search_string = search_string.upper()
    for cnt, s in enumerate([kw.upper() for kw in keywords], start=1):
        if search_string == s:
            return cnt
        else:
            f = re.findall("\A{0}".format(search_string), s)
            if len(f) == 1:
                if found:
                    return -1
                else:
                    found = cnt
    return found

print keyword('LINE', ['LINE', 'POINT', 'POLYGON'])
print keyword('point', ['LINE', 'POINT', 'POLYGON'])
print keyword('L', ['LINE', 'POINT', 'POLYGON'])
print keyword('K', ['LINE', 'POINT', 'POLYGON'])
print keyword('PO', ['LINE', 'POINT', 'POLYGON'])
print keyword('ABC', ['abcd', 'abc', 'abcd', 'efh', 'abc'])
print keyword('"A A"', ['a', '"a b"', '"a c"', '"a a"', '"a e"'])
print keyword('1', ['a12234a', '224556'])
print keyword('1', ['23456', '213456'])
print keyword('1', ['23456', '1', '213456'])
print keyword('1', ['23456', '2', '1456'])

LENGTH < string >

AML function
len(string)

LISTFILE

AML function

<not applicable>

LISTITEM < specifier >

AML function
import arcpy
fieldNames = []
fields = arcpy.ListFields(specifier)
for field in fields:
    fieldNames.append(field.name)

LISTUNIQUE < specifier > < item >

AML function
import arcpy

list = []
rows = arcpy.da.SearchCursor(specifier, [item])
for row in rows:
    list.append(row[0])

list.sort()
count = len(list)
pos = 1
prev = list[0]
while pos < count:
    if prev == list[pos]:
        del(list[pos])
        count = count - 1
    else:
        prev = list[pos]
        pos = pos + 1

LOCASE < s >

AML function
s.lower()

LOG < x >

AML function
import math
math.log(x)

LOG10 < x >

AML function
import math
math.log10(x)

MAX < x > < y >

AML function
max(x, y)

MENU

AML function

<not applicable>

MIN < x > < y >

AML function
min(x, y)

MOD < x > < y >

AML function
x % y

NULL < string >

AML function
if string == None or string.strip() == "":
    ".TRUE."
else:
    ".FALSE."

OKANGLE

AML function

<not applicable>

OKDISTANCE

AML function

<not applicable>

OPEN < file > -READ

AML function
f = open(file, "r")

OPEN < file > -WRITE

AML function
f = open(file, "w")

OPEN < file > -APPEND

AML function
f = open(file, "a")

PATHNAME < file >

AML function
# Assumes arcpy.env.workspace is set
#
import arcpy
import os

os.path.join(arcpy.env.workspace, file)

QUERY

AML function

<not applicable>

QUOTE

AML function

<not applicable>

QUOTEEXISTS

AML function

<not applicable>

RADANG

AML function

<not applicable>

RANDOM

AML function
import random
random.randint(1, 2**31 - 1)

RANDOM < seed >

AML function
import random
random.seed(seed)
random.randint(1, 2**31 - 1)

RANDOM < begin > < end >

AML function
import random
random.randint(begin, end)

RANDOM < seed > < begin > < end >

AML function
import random
random.seed(seed)
random.randint(begin, end)

READ <f ile_unit >

AML function
file_unit.readline()

RENAME < input > < output >

AML function
import arcpy

arcpy.Rename_management(input, output)

RESPONSE < prompt > -NOECHO

AML function
import getpass
getpass.getpass(prompt)

RESPONSE < prompt >

AML function
import getpass
getpass.default_getpass(prompt)

ROUND < n >

AML function
long(round(n))

SCRATCHNAME

AML function
import arcpy

# Assumes arcpy.env.workspace is already set
arcpy.CreateScratchName()

SEARCH < s > < search_s >

AML function
s.find(search_s) + 1

SHOW

AML function

<not applicable>

SIN < x >

AML function
import math
math.sin(x)

SORT < elements > -ASCEND

AML function
# Elements are blank separated
#
list = elements.split()
list.sort()

SORT < elements > -DESCEND

AML function
# Elements are blank separated
#
list = elements.split()
list.sort(None, None, True)

SORT < elements > -ASCEND

AML function
# Elements are comma separated
#
list = elements.split(",")
list.sort()

SORT < elements > -DESCEND

AML function
# Elements are comma separated
#
list = elements.split(",")
list.sort(None, None, True)

SQRT < x >

AML function
import math
math.sqrt(x)

SUBST < s > < search_s > < replace_s >

AML function
s.replace(search_s, replace_s)

SUBST < s > < search_s >

AML function
s.replace(search_s, "")

SUBSTR < s > < pos >

AML function
s[pos - 1:]

SUBSTR < s > < pos > < num_chars >

AML function
s[pos - 1:pos + num_chars - 1]

TAN < x >

AML function
import math
math.tan(x)

TASK

AML function

<not applicable>

TOKEN < elements > -COUNT

AML function
# Elements are blank separated
#
len(elements.split())

TOKEN < elements > -FIND < e >

AML function
# Elements are blank separated
#
elements.split().index(e) + 1

TOKEN < elements > -MOVE < from > < to >

AML function
# Elements are blank separated
#
list = elements.split()
list.insert(To-1, list[From-1])
del(list[To])

TOKEN < elements > -INSERT < pos > < s >

AML function
# Elements are blank separated
#
list = elements.split()
list.insert(pos-1,s)

TOKEN < elements > -DELETE < pos >

AML function
# Elements are blank separated
#
list = elements.split()
del(list[pos-1])

TOKEN < elements > -REPLACE < pos > < s >

AML function
# Elements are blank separated
#
list = elements.split()
list[pos-1] = s

TOKEN < elements > -MOVE <from> <to>

AML function
# Elements are blank separated
#
list = elements.split()
fvalue = list[From-1]
tvalue = list[To-1]
list[From-1] = tvalue
list[To-1] = fvalue

TOKEN < elements > -COUNT

AML function
# Elements are comma separated
#
len(elements.split(""))

TOKEN < elements > -FIND < e >

AML function
# Elements are comma separated
#
elements.split().index(e) + 1

TOKEN < elements > -MOVE <from> <to>

AML function
# Elements are comma separated
#
list = elements.split("")
list.insert(To-1, list[From-1])
del(list[To])

TOKEN <elements> -INSERT <pos> <s>

AML function
# Elements are comma separated
#
list = elements.split("")
list.insert(pos-1,s)

TOKEN < elements > -DELETE < pos >

AML function
# Elements are comma separated
#
list = elements.split("")
del(list[pos-1])

TOKEN < elements > -REPLACE <pos> <s>

AML function
# Elements are comma separated
#
list = elements.split("")
list[pos-1] = s

TOKEN < elements > -MOVE < from > < to >

AML function
# Elements are comma separated
#
list = elements.split("")
fvalue = list[From-1]
tvalue = list[To-1]
list[From-1] = tvalue
list[To-1] = fvalue

TRANSLATE < string >

AML function
string.upper()

TRANSLATE < string > < new old >

AML function
for i in old:
    if string.find(i) > -1:
        string = string.replace(i,new[old.find(i)])

TRIM <s> -BOTH < trim_char >

AML function
s.strip(trim_char)

TRIM <s> -LEFT < trim_char >

AML function
s.lstrip(trim_char)

TRIM <s> -RIGHT < trim_char >

AML function
s.rstrip(trim_char)

TRIM < s > -BOTH

AML function
s.strip()

TRIM < s > -LEFT

AML function
s.lstrip()

TRIM < s > -RIGHT

AML function
s.rstrip()

TRUNCATE < x >

AML function
long(x)

TYPE < object >

AML function
type(object)

UNQUOTE

AML function

<not applicable>

UPCASE < s >

AML function
s.upper()

USERNAME

AML function
import getpass
getpass.getuser()

VALUE

AML function

<not applicable>

VARIABLE

AML function

<not applicable>

VERIFY < search_string > < string >

AML function
count = 0
for i in range(len(search_string)):
    if string.find(search_string[i]) == -1:
        count = i + 1
        break

WRITE < file_unit > < string >

AML function
file_unit.write(string)

Related Topics

3/25/2013