ArcGIS Online Resource Center improvements

11/7/08—The ArcGIS Online Resource Center was updated on November 6, 2008, to make it easier to learn about the content available for use with your GIS applications:

  • Content tab: Learn about free maps, premium maps, and premium data products; compare the available imagery and street map services; and preview featured online content.
  • About tab: Find information about ArcGIS Online including advantages of using ArcGIS Online content, FAQs, available maps and data, Content Sharing Program, tasks, and system infrastructure. Information on available maps includes a description of the types of maps available, details on how to use free and premium maps, a licensing summary, map tiling scheme information, and common map attributes.
  • Blog tab: Learn about new content and updates to existing services.

NOTE: If you bookmarked links to any of the service descriptions, you need to update your bookmarks. The URLs for the service descriptions have changed.

Posted in ArcGIS Online, Services | Comments Off

Lidar Solutions in ArcGIS_part1: Assessing Lidar Coverage and Sample Density

This blog post is written by Clayton Crawford, Product Engineer in the Software Products Group’s 3D Team in Redlands.

This post is the first in a series called “Lidar solutions in ArcGIS”. The series will cover Lidar processing tasks and workflows. And it will show you how to manage these vast point collections and outline approaches for mining information from them.

Let me state an important point up front: This series is about Lidar point processing. If you have Lidar derived raster data then it won’t be of direct use, but if you need to learn how to make those rasters then read on. Also important to note: the type of Lidar involved in this discussion is collected from plane or helicopter with a laser scanner pointed downward. With this type of Lidar you can make bare earth surfaces for topographic mapping and 1st return surfaces that include vegetation and buildings. It’s not about the type of Lidar where data is collected at side-on angles.

Note that some of the tasks covered in the series require a 3D Analyst extension license.

Here are the topics I plan to cover:

 

Lidar Solutions in ArcGIS_part1: Assessing Lidar Coverage and Sample Density

One basic QA/QC process is to ensure the Lidar points delivered by your data provider have the coverage and density expected. You want to catch problems with this early on and have them resolved before continuing. Two geoprocessing tools are useful in this regard: Point File Information found in the 3D Analyst toolbox and Point To Raster located in core Conversion Tools.

Point File Information
The Point File Information tool reports basic statistics about one or more point data files on disk. The tool’s primary purpose is to help you review and summarize the data before loading it into your geodatabase.  LAS (the industry standard format for Lidar data) and ASCII format files are supported as input. Since Lidar projects often utilize collections of data files, sometimes in the hundreds or even thousands, the tool lets you specify folder names in addition to individual files. When given a folder, it reads all files inside it that have the suffix you specify.

 

For each input point file it outputs one polygon with accompanying attribution to a target feature class. The polygon graphically depicts the xy extent, or bounding box, of the data in the file. Attributes include file name, point count, z-min, z-max, and point spacing.

 

The point spacing reported by Point File Information is not exact and deserves some discussion. For the sake of performance it uses a rough estimate that simply compares the area of the file’s bounding box with the point count. It’s most accurate when the rectangular extent of the file being examined is filled with data. So, files with significant numbers of points excluded over large water bodies or on the perimeter of a study area, only partially occupied with data, will not have accurate estimates. Therefore, the reported point spacing is more meaningful as a summary when looking at trends for collections of files. Something useful to do with the output feature class is to display it in ArcMap, open its attribute table, and sort the point spacing field in ascending order. You can also symbolize on the point spacing field using a graduated color ramp.

 

Point File Information works quickly on LAS files because it only needs to scan their headers to obtain the information it’s looking for. It takes significantly longer with ASCII files because with them the tool actually has to read all the data.

Assuming everything checks out OK, the next thing to do is load your Lidar points into a multipoint feature class with the LAS To Multipoint or ASCII 3D To Feature Class tools. Put this feature class in a feature dataset if you intend to build a terrain dataset from the points. While you have the choice between using LAS or ASCII format files, LAS is generally a better way to go. They contain more information and, being binary, can be read by the importer more efficiently.

Once the points are loaded into a multipoint feature class you can use the Point to Raster tool to get a more in-depth view of the point distribution.

Point to Raster
The Point to Raster tool creates rasters from points and it also supports multipoints. It’s a generic tool with many options and uses. For the sake of evaluating Lidar point density the tool’s COUNT option is the thing to go for. This uses the number of points falling in a raster cell as the cell value. Being able to look at this graphically over the extent of the project area is revealing.

There’re a couple parameters on the Point to Raster tool whose values for this exercise aren’t obvious. First, is the Value Field parameter. It doesn’t matter what this is set to. That’s because the Value Field is ignored when the Cell Assignment type is set to COUNT. Then there’s the cellsize. You might think the average point spacing is good but this typically results in too many empty, or NoData, cells because Lidar points just aren’t that evenly spaced. Also, the output raster could end up being unnecessarily large. Instead, it’s better to go with a cellsize that’s several times larger than the average point spacing but small enough to identify gaps or voids that warrant further investigation. A reasonable size is four times the point spacing. As an example, let’s say your data is sampled at 1 meter. If you set the cellsize to 4 then you can expect, on average, to get 16 points in a cell.

You can also evaluate the density for different types of points. While most of the time you’ll probably just check the density for all returns it can be useful to look at those that fall in a certain class like ‘ground’. For example, this can give you an idea of how good your ground penetration is in vegetated areas. The Point to Raster tool doesn’t know how to make the distinction between point types though. So, you control what points get used by how you go about creating the multipoint feature class with the LAS To Multipoint tool. It provides options for loading points by class code and return number.

Once your raster has been created have a look at it in ArcMap. Use a color ramp renderer to display it so it’s easy to distinguish between cells with high counts and those with low. You can also set the NoData color to something that stands out. Look for variance in density and data voids. Have your vendor explain anything that doesn’t look right.

Hopefully, you’ll find your data meets specifications and lacks surprises. It’s worth the effort to check.

That’s it for this installment of Lidar Solutions in ArcGIS. Subscribe to this blog or check back in a couple weeks for a discussion on the creation of raster DEMs/DSMs from Lidar.

 

Posted in Analysis & Geoprocessing | Tagged , , | 2 Comments

Explorer on The Weather Channel

This Weather Channel article reviews the 2008 severe weather season, and makes for a very interesting, if sobering, read.

We noted that the 4th graphic in the article shows ArcGIS Explorer displaying a tornado path across downtown Atlanta, and was produced by the National Weather Service. 

Posted in Uncategorized | Tagged | Leave a comment

Your Cache Portfolio – Part 1

You should see your investment advisor about investing cash, but in this two part post we’ll cover how you can best manage your investment in Explorer map cache. Under most circumstances cache and how it is managed are completely internal to the application. But knowing a little more about it will help you make the right decisions about managing your own cache, and in making decisions about how you connect to services. 

We’ll begin by covering the implications of cache as it pertains to the default map, and other maps and layers you can access from the Content tab on the Explorer Resource Center.

Behind the scenes the default map and other maps are powered by ArcGIS Online, a large repository of online content and services that can be used in ArcGIS Explorer, ArcGIS Desktop, and ArcGIS Server. The ArcGIS Online services are powered by ArcGIS Server, and use ArcGIS Server’s caching capabilities to streamline performance, and reduce client/server overhead. The ArcGIS Server 9.3 Help describes caching as follows:

Map caching is a very effective way to make your ArcGIS Server maps run faster. When you create a map cache, the server draws the entire map at several different scales, and stores copies of the map images. The server can then distribute these images whenever someone asks for a map. It’s much quicker for ArcGIS Server to hand out a cached image than to draw the map each time someone requests it. Another benefit of caching is that the amount of detail in the image doesn’t noticeably affect how quickly the server can distribute the copy.

The bottom line is that caching is a feature of ArcGIS Server that makes things better for you – the ArcGIS Explorer user.

When you first connect to a service you communicate with the ArcGIS Online’s ArcGIS Servers. Cache is “handed out” to Explorer, and you’ll see the Streaming… progress bar at the bottom of the map.

What’s happening is that cache is being transferred from the ArcGIS Online servers to Explorer, where it’s stored locally. This is somewhat similar to how bits and pieces of internet sites you visit are stored in browser cache to optimize performance when visiting the site again.

Once local, the next time you visit the same location Explorer doesn’t even have to communicate with the server. It knows that it already has the cache it needs and simply uses it from local storage, resulting in best performance and minimizing client/server communications.

In an earlier post we blogged about how Explorer’s default startup map and other layers you find on the Resource Center are regularly updated. To see these updates in areas that you’ve already visited you will have delete your local cache since Explorer knows you’ve already been there, and doesn’t fetch new cache from the server.

But now that we said that, it’s not entirely accurate. There were many changes in ArcGIS Online services in recent months that were automatically propagated to all Explorer users. That happened since we changed the ArcGIS Online server URL string to indicate a migration from the 9.2 version of ArcGIS Server to the 9.3 version. As a result of that change, new cache was pushed out automatically. But unless ESRI does something on the back end, some changes may be made to ArcGIS Online services that you’ll need to refresh your cache to see.

To refresh your cache, just go to Tools > Options > Cache and choose Disk Cache. Check the option for All Caches and click Delete Caches.

It’s a good idea to periodically refresh your cache, and good practice to make it part of your housekeeping activities.

In Part II, we’ll cover how to have your cache refresh automatically when connecting to services.

Posted in Uncategorized | Tagged , | Leave a comment

ArcGIS Developer Poll Results

Here are the results from the last poll.  It looks like 76 people participated, and more than 50% have already migrated from to .NET, and about 30% are still transitioning from VBA/VB 6.0 to .NET.

Thanks for participating!  There’s a new one today and there will be more to come…

EDN Team

 

 

Posted in Developer | Tagged , | Leave a comment

Adding columns to text boxes

By Matthew Baker, Esri Software Engineer

As a judge for the Map Gallery at the Annual Esri International User Conference, and the Cartographer for the Esri Map Book, I am fortunate enough to see what many of you are doing with ArcGIS to create printed maps.
This year, one issue I frequently noted was very wide columns of text.  Below is an example, and the reason it doesn’t work is that it is hard to make your eye track along the long lines of text and then reliably find the next line. As presented, the text below almost guarantees that nobody will bother reading all the text that the Mapping Center team worked so hard to write.

Continue reading

Posted in Mapping | Tagged , , | 2 Comments

Creating a simple map dijit with the ArcGIS JavaScript API

Dojo Widgets or dijits are a great way to build web application UI components that either combine other components or bind data with business logic. Dijits are designed to be easy for users embed within their web applications.

In this post we’ll create a dijit that could allow a large city to share its mapping data with its citizens and allow businesses to integrate other functionality.

Finished map dijit

The Basics

When creating a dijit or a collection of dijits, it’s recommended that you use a specific folder structure. Each dijit requires a template, some cascading style sheets (CSS) and some images. Correspondingly, there are the templates, css and images folders. It is up to you whether to create these folders for each dijit or share these among several dijits.

Folder structure

The Template

All dijits start off with a layout that puts together the visual components. This dijit will contain a <div> for the map, a <span> with 2 buttons for toggling data layers and finally an <img> with the city seal. Clicking on the image opens a new window and navigates to the city’s home page.

You can optionally use CSS to style the visual components. In this case, since the toggle buttons and image are map overlays, we’ll apply CSS styling appropriately.

templates/MyFirstMapDijit.html

<div class="mapdijit">
<span class="layerbuttons">
<button dojoType="dijit.form.ToggleButton" dojoAttachEvent="onXXX:callback" ID="Button1">Neighborhoods</button>
<button ... checked ID="Button2">Landbase</button>
</span>
<img src="..." class="seal" dojoattachevent="onclick:gotoCityOfPortland" />
</div>

It’s important to note the dojoType, dojoAttachEvent, and dojoattacheevent attributes:

  • You will need to specify the dojoType attribute in order to allow the Dojo parser system to parse and apply rendering for appropriate dijits. This attribute value matches the name of a dijit class.
  • The dojoAttachEvent attribute connects a specific event onXXX on the dijit and calls the specified callback function.
  • The dojoattachevent attribute connects a specific event, say onclick on the HTML element and calls the specified function gotoCityOfPortland.

The Stylesheet

A CSS file is used to style the look and feel of the dijit. A user can potentially change the CSS to change the look and feel of this dijit.

css/MyFirstMapDijit.css

.mapdijit { position:relative; }
.mapdijit .layerbuttons { ...; z-index:100; ... }
.mapdijit .seal { ...; z-index:100; }

The CSS classes are referenced in the class attribute in the template markup. One thing to note is the z-index attribute on all map overlays. It is recommended that you use a z-index of 100 or higher when an element needs to display on top of a map.

The Dijit Class

Each dijit is backed by a JavaScript class which defines the behavior of the dijit. We’ll add the ability to add/toggle data layers and the additional behavior of opening the city’s home page when a user clicks on the seal.

As part of the lifecycle of the dijit, at the last step at startup, we will initialize the map once all the HTML elements have been laid down and presented to the client.

MyFirstMapDijit.js

dojo.provide(...);

//include all dijit dependecies
dojo.require(...);

//declare new dijit class
dojo.declare("mydijits.MyFirstMapDijit", [dijit._Widget, dijit._Templated], {
//dijit template contains other dijits
widgetsInTemplate: true,

//path to template
templatePath: ...,

//dijit startup method to initialize map
startup: function() { ... },

//behavioral functions
toggleLandbase: function(visibility) { ... },
toggleNeighborhoods: function(visibility) { ... },
_toggleLayer: function(layer, visibility) { ... },
gotoCityOfPortland: function() { ... }
}
);

The toggle* and gotoCityOfPortland functions provide the desired custom functionality. The esri.Map is instantiated within the startup function. The widgetsInTemplate property specifies that the template contains other dijits. The templatePath specifies the path to the template file for the dijit. If the template is very simple, you can alternatively use the templateString property and provide the markup in this string and not create a template file.

Note: Specifying a template string reduces the number of server calls to fetch a template from a running application if a web page contains several different dijits.

Testing the Dijit

That’s it! You are now ready to share this dijit with your users. To test it out, we’ll add the dijit to a blank page and verify that it works.

MyFirstMapDijitTest.html

 
<head>
...
<title>MyFirstMapDijit Test</title>
<!-- include dojo theme -->
<link href=".../tundra.css">

<!-- include dijit css -->
<link href=".../MyFirstMapDijit.css">
<!-- specify dojo configuration -->
<script ...>djConfig = { ... }</script>
<!-- reference ArcGIS JavaScript API -->
<script ...></script>

<!-- reference newly created dijit -->
<script ...></script>

</head>
<body class="tundra">
<!-- create markup -->
<div dojoType="mydijits.MyFirstMapDijit" ...></div>
</body>

Wrapup

You’ve just put together your first mapping dijit using the ArcGIS JavaScript API. In subsequent posts, we’ll show how to add other dijits, that analyze data on the map and others which encapsulate data and behavior that you can easily add to a website.

Download the example from the Code Gallery

Try the live example

Related links

Contributed by Jayant Sai of the ArcGIS JavaScript API development team.

Posted in Services | Tagged , , , | 1 Comment

Using the Disperse Markers tool to show community amenities

By Matthew Hampton, Senior Cartographer, OregonMetro

I was recently asked to lend a cartographic hand to a project my agency is working on. I work for OregonMetro (the Metropolitan Planning Agency in the Portland, Oregon area) and among other things, we are charged with planning the future of the region. One of the facets of the planning program involves helping the 25 cities in our jurisdiction collaboratively plan for future growth. Continue reading

Posted in Mapping | Tagged , | 1 Comment

Context menus made easy: in Java

As many of us might agree, context menus are a great way to place functions where users would intuitively expect them to be.  Right-click on a layer (provided your mouse has a right button) and capabilities specific to that layer should pop-up.  Right-click somewhere else, and the options hovering under the mouse change to something else.  This is a proven approach for helping your users do what they want to do more efficiently. Java developers who are using the ArcGIS Engine development kit are not provided the ability to create context menus right out of the box.  

Steven Rozic and Lalitha Darbhamulla from ESRI recently uploaded a Code Gallery sample that we all hope you will find helpful.  It’s called “Creating a Context Menu for Layers“, although the source code could be applied in other contexts as well. An extra bonus:  the download includes two options to choose from.  One uses the ArcGIS ToolbarMenu and the other uses the JpopupMenu from the Java Swing package. 

 

 

Posted in Developer | Tagged , , | Leave a comment

Ari Isaak on Explorer and PDF printing

Somehow we missed this when it appeared, but here’s another interesting post from Ari Isaak at the Port of San Diego from his %scratchworkspace% blog. We mentioned one of his earlier posts and, like the previous one, this one also features a video and some useful tips and ideas.

Posted in Uncategorized | Tagged | Leave a comment