POST
|
I have a numpy array like so:
import numpy as np
np.array([('1', [[0.0, 0.0], [1.0, 0.0], [0.30901699437494745, 0.95105651629515353], [-0.80901699437494734, 0.58778525229247325], [-0.80901699437494756, -0.58778525229247303], [0.0, 0.0]]),
('2', [[0.0, 0.0], [-0.80901699437494756, -0.58778525229247303], [0.30901699437494723, -0.95105651629515364], [1.0, -2.4492935982947064e-16], [1.0, 0.0], [0.0, 0.0]])],
dtype=[('UniqueID', 'S4'), ('XY', '<f8', (6, 2))])
I want to convert this array into a feature class using the 10.1 arcpy.da.NumPyArrayToFeatureClass function. However, feeding this array into the arcpy function gives me two points at (0,0), representing the first coordinate pairs in UniqueID 1 and 2. Any thoughts on what might be the problem? Each UniqueID relates to a tuple of coordinate pairs that should be connected to form a closed polygon (last point is the same as the first point).
... View more
12-26-2012
07:28 PM
|
0
|
1
|
2294
|
POST
|
Hi all, I have a Python Toolbox that converts a file geodatabase table to a format useful in external analysis. However, I would like to be able to export a subset of data by selecting a specific date on a calendar. What I have now is a date selection calendar that I can use to select the appropriate date. What I would like is for the calendar to only make available to me the dates that are available in the param0 "DATE" column. See example code and screenshot below.
def getParameterInfo(self):
param0 = arcpy.Parameter(displayName="Input Table",
name="in_table",
datatype="Table",
parameterType="Required",
direction="Input")
param1 = arcpy.Parameter(displayName="Input Date",
name="in_date",
datatype="Date",
parameterType="Required",
direction="Input")
As you can see, there is only data available for 1/3/2012. I would like all calendar dates to be suppressed except for the those dates in the param0 "DATE" column. [ATTACH=CONFIG]19403[/ATTACH]
... View more
11-19-2012
11:24 AM
|
0
|
4
|
3983
|
POST
|
Need to use SimpleApp. Here's a blog post that references Mark Cederholm's findings as presented at the Developer Summit. This works. Can you clarify why we must use the PySimpleApp class?
... View more
08-02-2012
09:41 AM
|
0
|
0
|
880
|
POST
|
I am building upon this example of wxPython in ArcGIS 10.1. http://betablogs.esri.com/beta/arcgis/2012/05/03/custom-wxpython-guis-an-approach-for-arcgis-10-1/ Outside of ArcMap, I can Close() the GUI and re-initialize it in its original state using the following method: def OnReset(self, event): self.parent.Close() frame = myFrame() Doing this is ArcMap causes it to crash... I think it has to do with the 'extensions' portion of the AddIn. class WXExtension(object): """Create a wxPython Extension inside ArcMap""" def __init__(self): self._wxApp = None self._enabled = None def startup(self): try: self._wxApp = wx.App() self._wxApp.MainLoop() except Exception: pythonaddins.MessageBox("Unable to start the Extension.", "Extension Error") @property def enabled(self): if self._enabled == False: button.enabled = False else: button.enabled = True return self._enabled @enabled.setter def enabled(self, value): self._enabled = value class Button(object): """ Create a custom button inside ArcMap""" _dlg = None @property def dlg(self): if self._dlg is None: self._dlg = myFrame() return self._dlg def __init__(self): self.enabled = True self.checked = False def onClick(self): try: self.dlg.Show(True) except Exception: pythonaddins.MessageBox("Can't show myFrame.", "Error") pass Included the DMP file from the ArcMap crash...
... View more
08-02-2012
07:18 AM
|
0
|
4
|
3249
|
POST
|
For those interested, here are my results with a feature class that contains 1 million point features generated randomly in ArcMap: """Method 1""" import time import arcpy arcpy.env.workspace = "C:\CountTest.gdb" StartTime = time.clock() # Grab the time after importing the arcpy module (heavy), and setting workspace. with arcpy.da.SearchCursor("RandomPoints", ["OBJECTID"]) as cursor: rows = {row[0] for row in cursor} count = 0 for row in rows: count += 1 EndTime = time.clock() print "Finished in %s seconds" % (EndTime - StartTime) print count >>> Finished in 6.75371938368 seconds 1000000 features >>> =============================== RESTART =============================== >>> Finished in 6.8498145457 seconds 1000000 features >>> =============================== RESTART =============================== >>> Finished in 6.8776609853 seconds 1000000 features >>> """Method 2""" import time import arcpy arcpy.env.workspace = "C:\CountTest.gdb" StartTime = time.clock() # Grab the time after importing the arcpy module (heavy), and setting workspace. arcpy.MakeTableView_management("RandomPoints", "myTableView") count = int(arcpy.GetCount_management("myTableView").getOutput(0)) EndTime = time.clock() print "Finished in %s seconds" % (EndTime - StartTime) print "%s features" % count >>> Finished in 1.68345616753 seconds 1000000 features >>> =============================== RESTART =============================== >>> Finished in 1.64100628447 seconds 1000000 features >>> =============================== RESTART =============================== >>> Finished in 1.65225749949 seconds 1000000 features >>>
... View more
07-23-2012
10:31 AM
|
0
|
0
|
422
|
POST
|
Given the functions in my python application, I would rather use the new data access module and Search Cursors to access my data and iterate through an object. Planning for the future, which method would produce quicker results when scaled upwards (more features)? with arcpy.da.SearchCursor("myFeature", ["OBJECTID"]) as cursor: rows = sorted({row[0] for row in cursor}) count = 0 for row in rows: count += 1 or arcpy.MakeTableView_management("myFeature", "myTableView") count = int(arcpy.GetCount_management("myTableView").getOutput(0)) Cheers
... View more
07-13-2012
11:14 AM
|
0
|
3
|
576
|
POST
|
Can we use .pyc files for our ArcGIS Python Add-in? This would be helpful for two things: Quicker executing add-in code Including non-standard python modules/libraries with the Add-In as pyc files only (eg. wxPython precompiles to pyc on installation because there are usually no instances where source code need to be altered)
... View more
07-12-2012
07:50 AM
|
0
|
1
|
984
|
POST
|
I have a script that does a series of calculations, producing temporary data along the way. Temporary data is added to the TOC once calculated in the script and then removed when I call the arcpy.Delete_management function on the data towards the end. Before my script reaches the delete function, the temporary data that I've calculated is shown in the TOC. Is there a way to explicitly specify these datasets as temporary, or freeze the TOC during script processing. Example below: class StationTypology: def __init__(self, areaName, bufferDistance): self.areaName = areaName self.bufferDistance = bufferDistance def BusinessDensity(self): try: # Make a temporary table in memory based on query of feature class query = ("""\"AreaName\" = '""" + self.areaName + """' AND \"BufferDistance\" = """ + str(self.bufferDistance) + """ AND \"UseType\" = 'Business'""") arcpy.MakeTableView_management("LANDUSE", "business", query) # Calculate the sum of floor space, from above table arcpy.Statistics_analysis("business", "in_memory\\businessStatistics", [["FloorArea", "SUM"]]) # Use SearchCursor to access table records and store rows in a variable rows = arcpy.SearchCursor("in_memory\\businessStatistics", "", "", "SUM_FloorArea", "") # Table has one row; access with iteration, grab value of SUM_FloorArea for row in rows: businessDensity = row.SUM_FloorArea del rows # Housekeeping arcpy.Delete_management("business") # Housekeeping arcpy.Delete_management("in_memory\\businessStatistics") # Housekeeping return businessDensity except: try: del rows # Housekeeping arcpy.Delete_management("business") # Housekeeping arcpy.Delete_management("in_memory\\businessStatistics") # Housekeeping except: pass I am running this script from a Python Add-In (ArcGIS 10.1) wxPython GUI. A user will press a button that triggers an event which starts a series of geoprocessing calculations as shown in the example. Just a note: I have also posted this question to GIS.stackexchange.com
... View more
06-27-2012
01:30 PM
|
0
|
7
|
2302
|
POST
|
Rather than Install.businesslogic, does import businesslogic work? It should. If not, try sys.path.append(os.path.dirname(__file__)) before your import thought I thought I made relative imports work. I was about to update my question with that exact answer! For those who come across the same problem. You can seperate your code into bite sized chunks and import them as modules as follows: # Import os, sys; append relative directory to path
import os
import sys
sys.path.append(os.path.dirname(__file__))
import arcpy
import pythonaddins
# Import your modules and add functions to namespace
from businesslogic import *
... View more
06-19-2012
01:25 PM
|
0
|
0
|
293
|
POST
|
Hi all, I was hoping someone could fill me in on how I can properly seperate my python addins' business logic and the main add-in script. The config.xml file lists: <AddIn language="PYTHON" library="PythonAddIn_addin.py" namespace="PythonAddIn_addin"> in its top most level. My library will contain more than just the default PythonAddIn_addin.py file. Ideally, I would like to be able to: from Install.businesslogic import Analytics to import my business logic function definition Analytics(). Currently, this breaks my application, while keeping all the needed code within the PythonAddIn_addin.py file works. The moment I try to import code from a relative path (within the Install folder), the add-in breaks. Ideas? I couldn't live with all my business logic sitting inside the PythonAddIn_addin.py file... its getting huge. Cheers, Michael
... View more
06-19-2012
12:31 PM
|
1
|
2
|
2344
|
POST
|
I think I may have found the right tool within spatial analyst. By utilizing Cell Statistics with the ignore NoData box CHECKED, I am able to "SUM" and produce a new raster with what I believe I can use for my "Human Influence Index" (human footprint). If there is a better way to go about this, please let me know. Thank you for your attention voldune.
... View more
02-15-2011
01:38 PM
|
3
|
1
|
4337
|
POST
|
I may have asked the question poorly by using the wrong terms and explanation. This is the first time I have had to ask for help so please bear with me. I am usually not this needy... I think I may have misinterpreted NODATA for "not a part of the raster". But in fact, nodata means there is a cell which is part of that raster grid, but it has nodata associated with it. Hopefully this makes more sense... What you can picture this as is two polygon shape files that have been converted to raster. One raster represents population density (values=4, 7, 10) and the other represents a highway (value=10). The rasters have cells which coincide in space, as well as cells that do not coincide. I would like to create a new raster that has a summation of values for each cell, whether or not every raster has data for every particular cell. As you can see, the data from the rasters where the cells do not "overlay" each other is tossed from the calculation. How can I work around this? To get this:
... View more
02-15-2011
01:07 PM
|
0
|
0
|
4337
|
POST
|
I am having trouble adding multiple rasters to create an overal classifications raster. Currently, I have 3 criteria variables (polygons), which have been converted from vector to raster. Each raster represents a different extent of spatial coverage on my map (eg, highways, land usage, pop density by Census Tract... I am creating a human influence index) I will use a simplified grid example, such as those used in the ArcMap help/resources. Below you will see the addition (summation) of 3 raster grids, with the output that I am currently experiencing. This is NOT what I would like. (grey = nodata) Here is an example of what I would like to happen. I've spent too much time trying to figure this out. I hope someone can steer me to the right tool or option/setting? Note: I am using ArcMap 10
... View more
02-15-2011
10:31 AM
|
0
|
15
|
20872
|
Title | Kudos | Posted |
---|---|---|
3 | 02-15-2011 01:38 PM | |
1 | 06-19-2012 12:31 PM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|