|
Home Up AV Bugs
| |
Additional software is available from our catalog.
Write us at 'software(at)quantdec.com' and tell us what you think
of this software or provide suggestions: your thoughts are always welcome.
We provide consulting and custom programming on a fixed price or time and
materials basis. Services range from system design to specifying
algorithms and processes to coding and documentation. E-mail us for more information.
Many of our ArcView extensions and scripts are also available at ESRI's
ArcScripts pages. Search on the keyword "QD".
Other sites with many good ArcView tools and extensions include:
Jenness
Enterprises Highly polished extensions.
Ianko's GIS Page
Check out the versatile EditTools extension.
Mark
Cederholm's ArcView page Original and creative work, well programmed.
Our scripts were featured in the November 2000 issue of "ArcView
Tips and Tricks." Check it out and browse the other issues of
this (almost) monthly on-line newsletter.
Soon to be released
These extensions and scripts exist and are undergoing testing. They
will appear eventually!:
-
Theme conversion toolkit: now up to 20 handy
functions. Convert among measured and 3D
shapes. Change dimensionality. Extend polylines, patch holes in
polygons, and many more.
-
Capture text labels. A significant
extension to our popular script now captures all information about text in a
view, including font, size, color, orientation, and even how labels are
grouped.
-
Compute grid convolutions (generalized focal
functions). (In beta.)
-
Change grid datums, including NAD conversion.
(In beta.)
Recent updates
We have been posting solutions to many problems on ESRI's
ArcView and ArcGIS forums. Here is a selection, in reverse chronological
order:
22 September 2004
- Find
furthest distance. One script quickly and efficiently finds the
furthest distance between a point and any other complex shape (a multipoint,
polyline, or polygon). The other script uses the first one to find the
furthest distance within any angular sector. A
separate posting in this thread gives step-by-step directions for
putting these scripts to use.
12 January 2004
- "Semi-transpose"
a table. Do this when you want to create separate fields to hold
values scattered throughout a table's records. Follow the link for an
example and more explanation.
- Compute
the true centroids of polylines.
- Compute
percentage area overlap among a set of polygonal themes.
- Create
flowlines in a digital elevation model using this simple tool.
- Obtain
a stratified random sample of a categorical grid with varying sampling
intensities.
- Create
random points along a line with minimum distance between them.
- Create
multi-colored fill patterns. Produce polygon fill patterns of
arbitrary complexity. This set of three scripts contains
general-purpose code along with an example creating a four-colored stripe
pattern.
- Compute
the centroids of multi-part polygons. This script extends the
capabilities of a popular ArcScripts extension.
- Summarize
points within polygons. This script, which is quite general, was
written to help summarize information about farms within a given distance of
tax parcels and to summarize information about businesses located within
overlapping potential service areas. The usual select-by-theme
approach will not work because the groups of points (farms, businesses) can
overlap. A related
script outputs one record for each unique point-polygon pair, as does
yet another
one (this seems to be a hot topic...).
- Select
all graphics in a single theme. Required by a user in order
automatically to delete all the graphics (labels, etc) associated with just
one theme, without having to select them individually.
- Rotate
shapes. This one works in all versions of ArcView, especially
those before 3.2 which has a much faster method to rotate shapes.
- Explore
legend structures in Avenue. This script illustrates how to obtain
access to key portions of an ArcView legend using Avenue code.
- Compute
the smallest
enclosing disk. A collection of scripts to compute the smallest
circle that encloses a shape. Useful for certain kinds of proximity
analysis and optimization problems.
- Change
the color of a scalebar. Easy to do, but it's not possible without
this little script.
- Create
theme groups within a view. A user writes, "I have so many
themes in my view that it is becoming unmanageable. ... I need to maintain
control over all the individual themes and not have them turn on and off
like they are one theme. A hierarchy is what I am after. See the related
script that groups themes by common name.
- Animate
features: plot them in a specified order. This solution responds
to the question, "I have a shapefile that has a column that consists of
time. I want to plot these points on the screen in order (slowly so I can
watch the order) based on this time column. How can I do this?"
- Dissect
a polygon into a 3 X 3 grid. The script is easily modified for
different size grids.
- Unload
all extensions from a project.
- Create
lines connecting features in one theme to those in another. Useful
for "spider diagrams," "desire line plots," etc.
- Select
all segments of a street lying between two cross streets. Rather
specialized, but applicable to any situation where a route must be found
between two points in a network.
- Select
elements from a list while typing. "How can I create a dialog
that will update a list, such as names, when a letter is typed in a box. For
example, after typing in S, all names beginning with S are listed, then when
m all names starting with Sm are listed, and so on."
- Add
points randomly to polygons. The output is a point theme with
specified numbers of random points placed within polygon outlines.
28 January 2002
- SaveWin
is an ArcView 3.x extension that automatically remembers positions and sizes
of view windows. It provides a button to back up through the last 20
configurations. The scripts can be added to buttons in any other
document--Table, Chart, Layout, Script, Project--for the same functionality.
25 January 2002
- We have posted a command-line utility for "pretty printing" and
marking up Avenue source code in HTML. Download it at Avenue
to HTML (ArcScripts) and read more about it at Ave2HTML.
21 December 2001
- Query
First selects the first occurrence of each instance of a selected field
in a table.
11 December 2001
24 October 2001
- Cartogram! creates
non-contiguous cartograms. This technique approximately fills areas on
a map in proportion to values of an attribute, providing a unique and
interesting data visualization method.
16 August 2001
- Tissot graphically displays
projection properties on any map. This is a unique tool, fun to use,
that can give you an intuition for how projections work, how to choose a
good one for your purposes, and how to evaluate the ones you are currently
using. (There is a small charge for downloading this software.)
- interpretations of arbitrary
transformations.
Overview of free ArcView scripts, extensions, and utilities
Except where noted, these are delivered as Avenue scripts (.ave) or ArcView
extensions (.avx). The entries indicate when the software was last updated. Software is organized alphabetically by functional groups and
alphabetically by name within each group.
|
|
Tissot
August 2001 |
Interactively display graphics
("Tissot indicatrices") on a view to show what the projection is
doing: how it changes scales, areas, angles, and orientation.
Excellent learning and analytical tool. |
Save
Windows
January 2002 |
Simply click a button to restore
previous view window sizes and positions. The functionality can
easily be expanded to include any kind of window. |
|
|
Append
tables
May 2000 |
Merge an arbitrary number of user-selected tables into a
single table. A new table is created that combines the attributes of all
the tables. The tables to be merged need NOT have the same set of
attributes (fields). |
Memorized
Calculations
Feb 2000 |
Reproduce the selections and calculations
you have performed on tables. Redo them at the click of a
button. Another button click turns it all into a working script! |
Query
First
Dec 2001 |
Query first is a
script that selects the first occurrence of each instance of a selected
field in a table. One nice application is the
detection and removal of duplicate records. |
|
|
Avenue
to HTML
Jan 2002 |
Format a script nicely and
highlight its comments in HTML. Very useful when publishing scripts
on the Web or for reformatting existing scripts for readability. |
Class
checker
May 1999 |
Verify that a script does not use any variable
names that could conflict with unloaded extensions. |
Data
source report
October 2000 |
Produces a text report of data
sources underlying all active themes in a view, all selected documents in
a project, or any open chart, table, or layout. Very useful to
identify what files are involved in joins and "event themes." |
Import
dialog
June 2000 |
Grab anybody's dialog and turn it
into an editable Dialog Designer document. Useful for recovering
detached dialogs and for learning how to create your own dialogs. |
Move
docs
July 2000 |
Organize project
documents. With one button press you move selected documents
to a new or existing doc GUI (graphical user interface). If you
want, a new GUI is automatically created for you. |
Record
actions
1999 |
Record user actions into a "log file" or
"watch file". The output is the full text of the unencrypted
Avenue scripts that are run from every menu item, button, and tool.
Useful learning and diagnostic tool. |
Reload
extensions
May 2000 |
Reload an extension with one simple
dialog. A convenience when developing and testing your own
extensions. |
Report
joins and links
December 2001 |
Obtain a report of all tables in an
ArcView project, including details of all joins and links among
them. Very useful for documenting projects and recreating them in
ArcView 8.x. |
Tab
order
December 2000 |
Control the sequence with which the
tab key navigates a dialog that you are developing. This
corrects a design limitation in ArcView's Dialog Designer extension. |
Uglify.exe
Feb 2000
(DOS utility) |
Protect your Avenue source code from copying. Makes
Avenue source code very obscure. Automatically removes comments and
unnecessary white space. Changes all variable names (except public
variables). |
|
|
Cell
IO
July 2000 |
Access and modify grid datasets
cell-by-cell. Includes the DLL, the DLL source (in Fortran), a
Fortran header to interface to the gridio library, and sample Avenue code
for interfacing to the DLL and using its procedures. |
Compute
grid statistics
Jan 2000 |
Compute and display a statistical summary of values for
every selected grid in a view. This script accounts for the "NoData"
values in a grid. |
Life
Aug 2000 |
Play the game of Life.
More importantly, see how easy it is to program a cellular automaton (CA)
using "map algebra" statements. |
Reproject
grids
1999 |
Reproject (or project or unproject) active grid themes.
Neither ArcView nor its Spatial Analyst extension, which is required for
this extension, will project grids. This one works very simply: just
choose another view for the new grid and the correct change of projection
will be applied. |
|
|
ColorRamp
Feb
2000 |
Create flexible, infinitely continuous,
multiple color ramps for ArcView legends. Even ramp graduated symbol
and unique symbol themes for greater effect. |
Desaturate
colors
1999 |
Desaturate all colors in the legends of all active themes.
"Desaturation" mixes the colors with white to make them appear
brighter and paler (and, usually, less obtrusive). |
Display
class counts
1999 |
For each active legend capable of computing class counts,
display those counts within parentheses after each label. Nice way
to summarize what is shown in a map. |
Limit
legends
Feb 2000 |
Hide unnecessary classes in all active legends. An
unnecessary class is one that symbolizes a feature outside the view's
extent. Useful for final map preparation. Uses an efficient
method. |
Name
TIGER themes
1999 |
Automatically create meaningful names for all TIGER
line themes downloaded from the ESRI site. These free,
high-quality, data are an amazing resource for every kind of analysis in
the U.S. However, it's a pain to use them because they come as
a large archive of files with cryptic names. This script is what you
need to use these data right out of the box. |
Sort
and Promote
Feb 2000 |
Change the order of features in a theme or
records in a table. This is the only way to ensure that critical
features really are visible in a theme where features overlap. |
|
|
Compute
convergence
Aug 2000 |
Compute the relationship between
grid north and true north at points throughout a map. |
Compute
diameters
Jan 2000 |
Compute and display, in new themes, the diameters of all
selected features in all active feature themes. This is a
useful analytical tool but is a hard to find feature in most GISes. |
Dissect
overlaps
Feb 2000 |
Identify and resolve feature overlaps. |
Select
overlaps
Feb 2000 |
Select all overlapping polygons in a theme in seconds using
this speedy algorithm. |
|
|
Cartogram!
Oct 2001 |
Create non-contiguous cartograms
from polygon themes. This software improves on the fine
"Cartogram!" extension, available on ArcScripts, by taking
advantage of the Transform2D class in ArcView 3.2 and later. This greatly
increases its speed, making it practical for large or complex maps.
For nice examples of cartograms for visualizing data, see The
Shrinking Student Pool and Higher Education: An Example from Pennsylvania,
by Robert N. Martin. |
Capture
text labels
Jan 2000 |
Convert selected text in a view into a polyline shapefile
which, when labeled, effectively reproduces the selected text, including
its position and orientation. |
Change
lines to points
Jan 2000 |
Convert polyline and polygon boundaries to points in several
ways: points are created at regular intervals or the original node points
may be used. There are many publicly available scripts with similar
functionality, but this one has two special features: (1) you are
provided a random starting location, which is useful for designing
systematic sampling programs on transects, and (2) the number of points is
guaranteed proportional to the total lengths of all features, so
the points can be used for subsequent spatial density calculations or
other analyses. |
Connect
the dots
1999 |
Create a polygon defined by the selected points in a point
theme (or all points if none are selected). The polygon will have no
(transverse) self intersections. |
Create
shapefiles
1999 |
Create any desired number of records in a new theme.
This script replaces the View|New Theme script and works exactly the same
way. This is useful for certain kinds of data conversions where you
will directly calculate shapes based on attribute data. |
Eliminate
slivers
Jan 2000 |
Remove sliver polygons from all selected editable polygon
themes in a view, automatically. |
Flip
lines
Sep 2000 |
Change the direction of—“flip”—any line in a theme.
Just point near the desired end of the line. It takes effect
immediately. |
Simple
random sample
July 2000 |
Create
uniform random samples of polygon features. (This extension
complements our Sample
extension available elsewhere on these pages.) |
Rotate
graphics
Jan 2000 |
Interactively rotate text and graphics in a view. This
incidentally fixes a problem with boxed text and boxed callouts in ArcView:
this tool will rotate the boxes along with the text. |
Transform
shapes
May 2000 |
Move, rescale,
rotate, skew, and reflect selected shapes in active themes.
Available only for ArcView 3.2 and later. See our article
on the theory and use of this extension. |
General
If, upon attempting to load an ArcView extension (ours or anyone else's), you
get a command window with a message like this (details vary, but they all
include "unrecognized object:"), it means your version of ArcView is
older than required by the extension. The only cure is to upgrade ArcView.

Change lines to points
Change lines to points requires ArcView 3.2 or later. It uses
"GeoCurves" for distance and bearing calculations. It can be
made to work in earlier versions of ArcView by commenting out the block (eight
lines) of script referencing the GeoCurve object in the Theme.PolyToPointByInterval
script.
Flip lines
Versions of Flip lines through v 1.2 may exit with a "polyMin
not initialized" error. We fixed this bug in version 1.3.
Memorized calculations
The Memorized calculations "compile" option may produce some
erroneous (but harmless) code when you are calculating the value of the [shape]
field. This code checks for the existence of this field and attempts to
create it if it does not exist.
Memorized calculations does not update the formula selection
whenever the mouse is clicked within the existing selection. This is an
ArcView bug. Work-arounds, built into the Memorized Calculations
interface, include an alternative representation of the selected formulas (by
row number) and an audible confirmation of change of selection.
Transform shapes
Transform shapes requires ArcView 3.2 or later. It relies on the
new "Transform2D" object to transform the shapes. Without this
object, transformation could be performed, but it would take roughly 100 times
longer. Therefore we have not provided alternative code for earlier
versions of ArcView.
|