Author Archives: raravena

Handling Raster backgrounds and NoData

Sometimes there are homogeneous areas in a raster dataset that you do not want to display. These can include borders, backgrounds, or other data considered to not have valid values. Sometimes these are expressed as NoData values, although at other times they may have real values.

Backgrounds and outlines can often be the result of georeferencing your raster dataset. If your raster data has a background, border, or other NoData values, you can choose not to display them or choose to display them as a particular color.

All renderers allow you to set the NoData value to a color or No Color, while the Stretched renderer allows you to identify a specific background value and display color or No Color.

What do you do if you’re still seeing a background colour after applying a 255,255,255 RGB background and the NoData options as in the example below?

If you had other values other than 255, 255, 255 for colours close to white (like 250 for example) and the NoData and Background colour settings were not enough to handle them, then it’s likely that that they may otherwise be rendering errors coming from the image preprocessing, perhaps from compressing the images.

Trying to apply the Spatial Analyst > Reclass > Reclassify tool try to handle that problematic range would only result in you losing the detail in your image by simplifying the spectrum into a new classification.

A better solution is a workflow that should make your data management more efficient as a consequence.

You will need to create a Mosaic Dataset to manage your images and be able to specify the reclassification this way.
The mosaic dataset simply acts as a reference to your images to spatially index them with pyramids for processing and any queries or conditions (like the reclassification of RGB values > 250 for example) you may want to add to them during display.

Continue reading

ArcGIS 10.1 Functionality Matrix Simplified

Did you ever take a moment to wonder how many tools and functions are available in ArcGIS?

We know you don’t have time to read all 46 pages of the ArcGIS 10.1 for Desktop Functionality Matrix, so here’s a condensed version to help you decide what you level you’ll need.

If you’re already familiar with a lot of the functionality already and are trying to determine which level is right for you then it’s suggested you read this summary from back to front to give you an idea of what is not included in the lower level licenses. It’s basically aimed at helping you decide when you’ll need a Standard or Advanced license.

Continue reading

Cannot access Basemaps and ArcGIS Online data or having trouble getting past that flaming firewall?

Many people run into the trouble of not being able to access Basemaps and data from ArcGIS Online. If you’ve encountered blank screens trying to access these 2 sources, then read on.

… it’s probably a firewall-proxy issue …

Continue reading

Taking hold of the Python – Part 3

When to create a Python Add-in

Before you decide to make an add-in, be sure it is the right development path for your project requirements.

If you want to add a collection of existing tools on a toolbar, or change the layout of menus or toolbars in an ArcGIS for Desktop application, you can configure the user interface (UI) to match your preferences. This does not require any programming or scripting..

If you need to run a set of geoprocessing tools to perform data analysis or data management, or produce a series of maps, consider creating a model with ModelBuilder or writing a Python script

If it is required to make a customization that performs an action in response to an event, or requires the use of the mouse to interact with the display, you should consider making an Add-in. An example is a tool that requires the user to click and drag a rectangle over a map to define an area of interest. Another example is an application extension that saves the map document automatically anytime a layer is added or removed from the table of contents. Continue reading

Taking hold of the Python – Part 2

Getting started

You don’t have to be a programmer to write Python scripts. You can start by learning the basic Python syntax and its built-in types. Once you know the basics, you can write Python scripts to automate geoprocessing, map production, and data management tasks in ArcGIS.

I think ModelBuilder actually provides the easiest start. Note that once you’ve constructed your Graphic UI model in ModelBuilder, when you save it, it gets compiled into Python script which allows you to go through and get more familiar with the syntax and logic construction.

Something similar can be done from the Results window, where you have the option to copy geoprocessing tool results as Python snippet code. Being able to access a detailed record of your geoprocessing operations, with tool inputs pre-populated, is a powerful timesaver when you need to repeat the same workflows. Continue reading

Taking hold of the Python – Part 1

Esri have been phasing out VBA in favour of Python since ArcGIS 10.0.

Reason for transition – Microsoft has stopped supporting VBA. Since the release of ArcGIS 10, VBA was no longer recommended for use as it was not going to be included in subsequent versions, including 10.1. However it was still available in order to support legacy code and applications. A migration to Python, an open source programming language, was thus necessary.

Python is free, cross platform, open source, stable, mature, simple, and powerful. Benchmarking has shown that Python processes scripts in about a third of the time that VBA does.

Continue reading

Double or nothing: Speed up your Geoprocessing with Parallel Python

If you’re not willing to wait for the next generation of CPUs and you’re not afraid to donate some of your spare time to the bleeding edge, then you might want to consider attempting to leverage the power of multiple processors by writing parallel code.

Python’s Global Interpreter Lock confines Python code to a single processing core. Erlang leverages processing in systems with multiple processors (SMPs) however its standard libraries are virtually useless for anything that needs to handle geospatial data.  Parallel Python (PP) however is a Python module which provides a mechanism for parallel execution of Python code on SMPs and clusters (computers connected via network). It is light and easy to install and integrate with other Python software.

This could mean that your app will potentially run twice as fast if you parallelize your code. Only time and testing will tell.

A good testing ground for parallel processing is any application that has to process many arrays of data and whose individual members need to be handled independently.The potentials for faster raster processing for example could be enormous.

For information, examples and downloads of PP:

http://www.parallelpython.com/

Ricardo A.