POST
|
This morning I realized my issue and thought I would post the solution in case someone else has the same problem. I spaced it out that instead of env.mask = row[0] it has to be env.mask = 'SHAPE@'.
... View more
07-26-2013
07:16 AM
|
0
|
0
|
495
|
POST
|
Below is a snippet of code that I have been working on that loops through the geometry of multiple features of a shapefile and uses that geometry as a mask to get raster properties. However, I'm stumped as to why I continue to get the following error, RuntimeError: Object: Error in accessing environment <mask>
import arcpy, os, string, csv
from arcpy import env
winsum = "D:/WERC/GIS_Layers/Summer-Winter Ranges/AllShps/WinterSummer.shp"
env.workspace = workspace
with arcpy.da.SearchCursor(winsum, ['SHAPE@', 'Name', 'Season']) as cursor:
for row in cursor:
name = row[1]
season = row[2]
env.mask = row[0]
for raster in arcpy.ListRasters():
stdResult = arcpy.GetRasterProperties_management(raster, "STD")
print stdResult
meanResult = arcpy.GetRasterProperties_management(raster, "MEAN")
print meanResult
minResult = arcpy.GetRasterProperties_management(raster, "MINIMUM")
print minResult
maxResult = arcpy.GetRasterProperties_management(raster, "MAXIMUM")
print maxResult If anyone could point me in the right direction it would be much appreciated. Thanks!
... View more
07-25-2013
09:02 AM
|
0
|
1
|
1008
|
POST
|
Hi Nitishia - Sometimes I'll have that same issue with Arc giving me the "failed to save raster data set" error. More often than not it's usually something about the name of the raster that Arc doesn't like. I'll end up trying a couple different variations of the name until it takes. So, based on your attached attribute tables did you mask your data set instead of clipping the data set? If you mask a raster the attribute table does not reflect those changes. Instead, Masking defines all of the pixels outside of your watershed boundary as NoData. The data is actually still there you just don't see it. If in fact you did use the Clip tool under the Raster Toolset in Data Management then you will need to rebuild your attribute table to reflect any changes made to the new clipped raster. Arc will often carry over the original attribute table even though you've clipped the data set. I should have also mentioned that when you create a raster with the Con tool, the tool will actually update all of the values in the new raster's attribute table to reflect only those pixels that were identified as open water in your SQL statement. In the end your 2630 pixel count is correct given that you are only analyzing just a small watershed. The very large pixel count that you see is for the entire state of Ohio. Let me know if these clears things up for you and whether or not you need any more help!
... View more
07-15-2011
11:15 AM
|
0
|
0
|
1198
|
POST
|
Hello Nitisha - So, first off, I need to apologize again for not reading your post closely enough. I didn't realize that the NLCD data set was an Imagine file. Imagine files don't work with the Con tool. This will add one extra step for you but you need to convert your NLCD data set to a GRID file. The easiest way to convert the data set is to right-click on the NLCD layer in the Table of Contents, navigate to Data and then Export Data. Set the format to GRID, name your file and then select save. The process shouldn't take very long for you. The entire state of Ohio took about 7 minutes to convert. With the data set converted to the GRID format you can now use the Con Tool to select only those pixels identified as open water and then use the Raster to Polygon tool to convert the pixels to polygons. I did the entire process from beginning to end and I had no pixel difference between the original raster and the open water raster. Again, sorry for the runaround over the last several days. So the steps should be as follows, 1) Convert NLCD data set to the GRID format by using the Export Data option. 2) Use the Con Tool to create a new raster based on a SQL expression that identifies only Open Water. 3) Use the Raster to Polygon tool to convert the raster created in step 2 to polygons (remember to deselect 'simplify polygons'). 4) Create a new column in your new shapefile created in step 3 and calculate the area using Calculate Geometry. Please let me know if this works for you. Good luck 🙂
... View more
07-14-2011
11:19 AM
|
0
|
0
|
2688
|
POST
|
Nitisha - What area of the U.S. are you trying to analyze or is this for the whole U.S? I thought that if I could go download the NLCD data myself I could try it and see if I get different results. It's also easier for me to troubleshoot if I had the data set in front of me. Anyways let me know. We'll get it figured out eventually!
... View more
07-13-2011
11:51 AM
|
0
|
0
|
2688
|
POST
|
Hi Nitisha - You're very close! There's a couple things I would recommend. For your SQL statement instead of using 'Value = 1' I would use your 'Modified_a' column instead. You'll also want to use the SQL Query Builder to make sure everything is legit (the query builder button is to the right of 'Expression' in the Con tool with SQL in tiny letters). In the Query Builder the attribute table's fields will show up in the list. You double click the field you want to to include, select the '=" button and select 'Get Unique Values'. Double click "Open Water", select 'Verify'. Verify should have been successful and then select OK. Your SQL statement will look more like this, "Modified_a" = Open Water Attached is a screenshot of the Query Builder in case you weren't familiar with it. Let me know if this resolves the descrepancy in the pixel count. Secondly, I apologize for the directions I sent earlier. I thought for some reason that the Area column would have been included in the attribute table but I was mistaken. Adding the column yourself and calculating Geometry works just as well. You can also import the shapefile into a Geodatabase too since that procedure will automatically calculate the area for you. It's kinda six of one or half a dozen of another. Adding the column and calculating Geometry is probably the the quickest way. Whatever works best for you. Also, I forgot to tell you that you should deselect the simplify polygon checkbox in the Raster to Polygon tool. Sorry! This way no generalization will occur and the area of the polygon will be true to the area of the raster. I hope this clears things up for you. Again, please let me know how it turns out and if you need anymore help 🙂
... View more
07-13-2011
08:51 AM
|
0
|
0
|
2688
|
POST
|
Nitisha - A conditional statement can be confusing at first just because the tool isn't entirely intuitive if you're not too familiar with it. In your case the input conditional raster and the input raster or constant value will both be your NLCD dataset. The reason you're going to input the same raster twice is because of the SQL statement that you will use. ESRI in their resource center explains it a little more clearly. The values a cell should receive when it is evaluated as true are specified by the Input true raster or constant value. The values a cell should receive when it is evaluated as false are specified by an Input false raster or constant. Conceptually, during execution, the Con tool visits each cell location and, based on the cell's value and the conditional statement, determines if the cell is evaluated as true or false. If the cell is evaluated as true, the output value for that location is identified in the true input. If the cell is evaluated as false, the output value for that location is identified in the false input. In your case (and we'll use the deciduous forest example) when the tool runs it will analyze each cell and determine, based on your SQL statement, if that cell is either deciduous or not. If it's false the tool will define that cell as NoData. If it's true than that cell will be given the value of deciduous forest. I can't recall what the attribute table of the NLCD dataset looks like but your SQL statement will be similar to the following. Lc type = Deciduous Forest. Select OK on the tool and it will churn through the dataset and output a raster that should show only deciduous forest and nothing else. As for your second question, you do not need to create an empty shapefile. After finishing with the Con tool you can navigate to Conversion Tools > From Raster > Raster To Polygon. This will convert your new deciduous forest raster to a polygon. The result of this tool will be a shapefile of all deciduous forest and a column specifing the area in the attribute table. If you need anymore help please let me know. Good luck 🙂
... View more
07-12-2011
05:04 PM
|
0
|
0
|
2688
|
POST
|
Hi Nitisha - In my opinion the easiest method to calculate area of a land classification raster (be it NLCD or ReGAP) is to do a conditional statement on the raster to make each land type its own raster layer and then convert those raster layers to polygons. For example, if you have a land type that's called 'Deciduous Forest' you can use the 'Con' tool in Spatial Analyst to create a new raster layer that only has Deciduous Forest. Once the raster is created you can convert this to a polygon using the 'Raster to Polygon' tool. The resulting shapefile will include a column called 'Shape_Area' that will give you the area of Deciduous Forest. I know there are many ways you can approach this problem but this is the method that I've used personally many time as it's fairly straightforward and quick in my opinion. Let me know if you need any more help. Good Luck.
... View more
07-12-2011
08:50 AM
|
1
|
0
|
4450
|
POST
|
Just thought I would answer my own post by mentioning that it isn't a bug with Cell Stats but a problem with the person who wrote the above code 😉 For those interested here is the way it should be.... rasterlist = []
for rasters in arcpy.ListRasters():
rasterlist.append(rasters)
outcellstats = CellStatistics(rasterlist, "MAXIMUM", "DATA")
outcellstats.save(output + "maximum_2006")
... View more
04-21-2011
12:46 PM
|
0
|
0
|
235
|
POST
|
Hi All - I was wondering if somebody would be willing to provide some information on a problem I've been having lately with using Cell Statistics in Python? Specifically, I wanted to use Cell Stats to give me the Max cell value for each pixel in a list of 20 rasters. Below is the code: env.workspace = workspace
for rasters in arcpy.ListRasters():
evi = arcpy.Raster(rasters)
CellStats = CellStatistics([evi], "MAXIMUM", "DATA")
CellStats.save(output + "MeanMax") The result is a raster that has the SUM of all the pixels not the MAX. When using the tool directly in ArcGIS Desktop 10 and I add all 20 of my rasters the output is correct. Any thoughts on why the tool in python is adding all the cells together instead of providing me the max value? Thanks much.
... View more
04-20-2011
10:06 AM
|
0
|
1
|
1403
|
POST
|
Hi Sean - I thought I would add my two cents. Like @mytmatt metioned, coordinate systems/projections is not only an important question but one of the most important aspects of GIS. Hopefully this will help you out some: What Is A Geographic Coordinate System? You can think of a Geographic Coordinate Systems as data that is defined by a 3-D surface and measured in latitude and longitude. An example of a Geographic Coordinate System would be "WGS 1983" or "North American Datum 1983". You may also wonder what a "Datum" is. Just remember that the term "Datum" and "Geograhpic Coordinate System" can be used interchangeably. Essentially a Datum provides a "frame of reference for measureing locations on the surface of the earth i.e. lines of latitude and longitude." What is a Projected Coordinate System? A projected coordinate systems refers to data that is defined by a flat 2-D surface and can be measured in units of meters and feet. An example would be USA Albers Equal Area Conic which has a measuring unit of Meters. "Map projections" and "Projected Coordinate Systems" can be used interchangably as well. That is a very simplistic description of the differences between "Geographic Coordinate System" and "Projected Coordinate System" but one that should at least give you some of the basics of what you wanted to know. Adding to what Melita wrote I thought I would add a couple extra Resource Center links that might help you.. What Are Map Projections? http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/What_are_map_projections/003r00000001000000/ Projection Basics for GIS Professionals http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Projection_basics_for_GIS_professionals/003r00000002000000/
... View more
03-01-2011
12:27 PM
|
11
|
4
|
6152
|
POST
|
Hi Jamal - In order for you to convert an E00 file you first need to import it using the "Import from E00" script in ArcToolbox (System Toolboxes -> Conversion Tools -> To Coverage -> Import from E00). What this will do is convert the E00 file to a Coverage (The resulting file will be in the same location as that of your E00 file unless you specify otherwise). The result will be a Coverage that actually contains a handful of individual files (Arc, Tic, Label, Polygon). In order to further convert the Coverage into a Shapefile you need to export the Coverage. The simplest way to do so would be to use ArcCatalog. Navigate to the folder where your Coverage is, right click the Coverage, navigate to "Export" and select "To Shapefile (Multiple)". Choose your destination folder, run the tool and when it completes you will have converted your Coverage into a Shapefile (you should have 3 or 4 individual Shapefiles). I've attached a screenshot that gives you a visual of how to convert the Coverage into a shapefile. Hope this helps.
... View more
02-01-2011
09:47 AM
|
0
|
0
|
264
|
POST
|
According to the most recent deprecation plans Personal Geodatabases will still be supported for ArcGIS Desktop 10 and 10.1. However, Personal Geodatabases will no longer be supported for ArcGIS Server starting at version 10.1. Even though the support is still there for Desktop I know ESRI recommends that folks migrate over to the File Geodatabase. Below is a PowerPoint presentation from an ESRI conference a couple years back that deals with the benefits of the File Geodatabase. Advantages of a File Geodatabase (Slide 😎 http://proceedings.esri.com/library/userconf/feduc08/papers/techworkshops/workingwiththegdb.pdf ArcGIS 10 Deprecation Plans http://downloads2.esri.com/support/TechArticles/ArcGIS10and101Deprecation_Plan.pdf I think it's safe to say that the Personal Geodatabase will eventually be phased out based on ESRI's emphasis on the File Geodatabase and their past recommendations for migrating over to this format. Hope this helps.
... View more
02-01-2011
05:42 AM
|
0
|
0
|
153
|
POST
|
Hi James - I believe what you are looking for is called Get Count. It will return the number of records found in the attribute table of a feature class, table or raster. http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//0017000000n7000000.htm I don't have access to Python at the moment otherwise I would have attached a Python script for you but if you need any further help just let me know.
... View more
01-30-2011
05:48 PM
|
0
|
0
|
1791
|
Title | Kudos | Posted |
---|---|---|
1 | 07-12-2011 08:50 AM | |
11 | 03-01-2011 12:27 PM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|