POST
|
Does anyone know when can we expect ArcGIS for Windows Mobile to support Windows 8 and can be built with Visual Studio 2012 ? a year later and STILL no answer from ESRI??? I have the same Q.
... View more
06-10-2013
09:06 AM
|
0
|
0
|
154
|
POST
|
JSkinn3;271206 wrote: Hi Ernst, At 10.1, there is a way to recalculate the extent through the properties of the feature class. In the Catalog window > right-click on the feature class > Properties > Feature Extent tab. [ATTACH=CONFIG]21603[/ATTACH] QUOTE] I have 10.1 SP1, but recalculate using the Feature Extent tab did not work for me. It still recalcuated to incorrect extent, covering for areas than what is in my current feature class. In my case, the data resides in ArcSDE, but in a 9.3 SDE on Oracle. Only my client is ArcGIS Desktop 10.1. Is this a bug in 10.1 SP1? Has ESRI created a bug # for this issue?
... View more
06-03-2013
05:33 PM
|
0
|
0
|
1547
|
POST
|
Thanks Tim, Your suggestion is good except that on my end I'm sharing the web app via an AGOL template web map app. http://bcgis.maps.arcgis.com/home/webmap/viewer.html?webmap=___¢er=-80.153503,26.070546&level=14 Above would work, but what I want is to pass a parameter via the app, like below. But the url parameters below won't work. http://bcgis.maps.arcgis.com/apps/OnePane/basicviewer/index.html?appid=___¢er=-80.153503,26.070546&level=14 There's something else I wonder if I can use. If I make the app configurable. But, I can't figure out how to write a configuration parameters to do what I want. Any ideas?? http://resources.arcgis.com/en/help/arcgisonline/index.html#/Adding_configurable_parameters_to_templates/010q000000ns000000/
... View more
05-21-2013
08:57 AM
|
0
|
0
|
200
|
POST
|
I have web map and created a web map app using the one pane template. I'm hosting it externally via AGOL. One of the users wants to call this web map app from other website. The issue is that they want to pass an xy coordinate so that the web map app in AGOL automatically centers the map using the xy coord they specify. I have no clue how to do that within the web map app since I'm just using the one pane template.
... View more
05-20-2013
03:51 PM
|
0
|
2
|
734
|
POST
|
Sorry, I had similar Q. Just to double check my understanding. If I want several layers in an mxd to be turn on/off by the end users, I have publish as feature service and NOT as a map service? I didn't have this problem when used non-AGOL templates, meaning templates like Silverlight. I don't want my users to make any edits or symbology changes to the layers, that's why I was staying away from serving the mxd as feature service. But, when I published as map service I don't have the same ability to turn layers on/off as I used to do with older (non-AGOL) templates. I don't want to publish any tile service either.
... View more
05-20-2013
03:40 PM
|
0
|
0
|
248
|
POST
|
I have similar question. I know it's possible to make changes by downloading the code, but my main Q is: "Is this possible (to make the changes and keep in AGOL), or should we consider moving the application in-house (rather than hosted on our AGOL organization account)?"
... View more
05-20-2013
03:30 PM
|
0
|
0
|
191
|
POST
|
Need some "basic" help to get started on making minor edits to a Web Map Application made using the One Pane template. How do I get started on changing things like the following? - change the banner - change the background color of the "one pane" that shows map description - making sure that links on the map description open on a new browser window (or tab) versus the same window (which is what appears to be default). The "Configure App" is too limiting and the other templates aren't that much more flexible. I have ArcGIS for Organizations, if that helps. The idea is to keep the app as hosted by ArcGIS online, not poiting to our own URL. Basically, I don't have an external web server to host this app, but I don't know how to get around the limitations of the templates without downloading the entire code and publishing in a separate server. Is what I want even an option?
... View more
05-20-2013
03:19 PM
|
0
|
1
|
411
|
POST
|
Did anyone at ESRI answer this Q? Unfortunately, I currently do NOT have access to ESRI support because our I don't have my organization's customer number (and for whatever reason there appears to be a bit of resistance in the organzation to share that w/ the GIS power users). So, if anyone knows the answer it would be great. Unfortunately I don't have admin rights at this time in my work PC. I'm trying to figure out if I will need it to be able to fully support a customized ArcGIS for Mobile app that I'll be inheriting. Thanks...
... View more
12-02-2012
08:00 PM
|
0
|
0
|
179
|
POST
|
Did you get a reply or got the answer another way? I have similar Q. Thanks...
... View more
12-02-2012
07:41 PM
|
0
|
0
|
528
|
POST
|
Ok, I got it to work. I found a really easy solution. Basically to ensure my list have only unique values, I put the list in a python set and then back to a list (and then sorted it). It sounds silly, but that works fast and I avoided having to create a bunch of temp tables each time I ran the Frequency command on a particular field. (My thanks to JSkinn3 🙂 for getting me unstuck, after seeing his example with cursors and python lists, I was able to figure out the rest). Although the code below works perfectly for me and meets my inmediate needs, I recommend doing a few extra things. >This code doesn't take into account feature classes with subtypes. I am not fond of subtypes, but that's just me. Since I don't use them, I didn't add any code to test domains in subtypes. You are welcomed to enhance the code and add that test. >In reality, I already have a fgdb with all the domains as lookup tables. That's because I have a fgdb with over 100 feature classes using over 60 domains (and I plan to maintain the lookup tables, not the domains). The code below recreates all of those tables and then deletes them. If you have a lot of domains re-doing that process in the code is overkill. I plan to modify the code later so I can do the comparison against the lookup tables. >The code can be easily modified to export the results into a table in your geodb or other workspace. I opted to just export the invalid values to a log file and use tabs to make it easy for me to copy to Excel. >There's minimum error handling in this. My intent was not to create a stand-alone gp tool for sharing, but a quick way to do some QA checks since a lot of our data is maintained by consultants. Using my test.gdb, the code populate a text file with the following: ****************************************************************** Checking for Invalid Domain Values in Feature Classes Inside Datasets ****************************************************************** Dataset FeatureClass Field Domain InvalidValue Geodetic AirportControlPoint GPSSUIT CodeBoolean S Geodetic AirportControlPoint SPCSZONE CodeCoordinateZone FLHP_EF ****************************************************************** Checking for Invalid Domain Values in Standalone Feature Classes ****************************************************************** FeatureClass Field Domain InvalidValue ------------------------------------- Below is my working code:
#==========================
#**** Check_InvalidDomains *****
# This code creates a text log to identify feature classes
# that has fields that violate domain values
#---------------------------------------------------
# Limitations/ What to Improve:
# > It does not account for subtypes.
# > There's always room to improve error handling
#==========================
import arcpy, os
from arcpy import env
banner = "******************************************************************"
basepath = "C:/MyTempTossDir"
gdb = basepath + "/test.gdb"
env.overwriteOutput = 1
try:
env.workspace = gdb
logbasepath = basepath
logname = "GeoDB_DomainValueCheck.txt"
logpath = logbasepath + "/" + logname
if os.path.exists(logpath):
os.remove(logpath)
logfile = open(logpath, "w")
#==========================
logfile.write(banner + "\n")
msgline = "Checking for Invalid Domain Values in Feature Classes Inside Datasets"
logfile.write(msgline + "\n")
logfile.write(banner + "\n")
print banner
print msgline
msgline = "Dataset" + "\t" + "FeatureClass" + "\t" + "Field" + "\t" + "Domain" + "\t" + "InvalidValue"
logfile.write(msgline + "\n")
lstFDs = arcpy.ListDatasets("*", "Feature")
for fd in lstFDs:
env.workspace = gdb + "/" + fd
lstFCs = arcpy.ListFeatureClasses("*")
for fc in lstFCs:
lstFields = arcpy.ListFields(fc)
for field in lstFields:
if field.domain:
arcpy.DomainToTable_management(gdb, field.domain, gdb + "/" + "tb_" + field.domain, "code", "description")
rows = arcpy.SearchCursor(fc, field.name + " IS NOT NULL", "", field.name)
listValues = []
for row in rows:
fieldValues = row.getValue(field.name)
if len(fieldValues.strip()) <> 0:
listValues.append(fieldValues)
del row, rows
listUniqValues = list(set(listValues))
listUniqValues.sort()
rows = arcpy.SearchCursor(gdb + "/" + "tb_" + field.domain, "", "", "code")
listCodes = []
for row in rows:
fieldCodes = row.getValue("code")
listCodes.append(fieldCodes)
del row, rows
if len(listUniqValues)>1:
for n in listUniqValues:
if n not in listCodes:
msgline = fd + "\t" + fc + "\t" + field.name + "\t" + field.domain + "\t" + n
logfile.write(msgline + "\n")
msgline = fd + "/" + fc + " contains field " + field.name + " with domain " + field.domain + " with the following invalid domain value: " + n
print msgline
#==========================
logfile.write(banner + "\n")
msgline = "Checking for Invalid Domain Values in Standalone Feature Classes"
logfile.write(msgline + "\n")
logfile.write(banner + "\n")
print banner
print msgline
msgline = "FeatureClass" + "\t" + "Field" + "\t" + "Domain" + "\t" + "InvalidValue"
logfile.write(msgline + "\n")
env.workspace = gdb
lstFCs = arcpy.ListFeatureClasses("*")
for fc in lstFCs:
lstFields = arcpy.ListFields(fc)
for field in lstFields:
if field.domain:
arcpy.DomainToTable_management(env.workspace, field.domain, "tb_" + field.domain, "code", "description")
rows = arcpy.SearchCursor(fc, field.name + " IS NOT NULL", "", field.name)
listValues = []
for row in rows:
fieldValues = row.getValue(field.name)
if len(fieldValues.strip()) <> 0:
listValues.append(fieldValues)
del row, rows
listUniqValues = list(set(listValues))
listUniqValues.sort()
rows = arcpy.SearchCursor("tb_" + field.domain, "", "", "code")
listCodes = []
for row in rows:
fieldCodes = row.getValue("code")
listCodes.append(fieldCodes)
del row, rows
if len(listUniqValues)>1:
for n in listUniqValues:
if n not in listCodes:
msgline = fc + "\t" + field.name + "\t" + field.domain + "\t" + n
logfile.write(msgline + "\n")
msgline = fc + " contains field " + field.name + " with domain " + field.domain + " with the following invalid domain value: " + n
print msgline
env.workspace = gdb
lstTables = arcpy.ListTables("tb_*")
for table in lstTables:
arcpy.Delete_management(table)
del lstFCs
del lstFDs
del lstFields
del listValues
del listUniqValues
del listCodes
# ISSUE: RefreshCatalog is not working, I don't know why.. Kept this to remind me to figure it out later...
arcpy.RefreshCatalog(env.workspace)
except:
print arcpy.GetMessages(2)
finally:
env.overwriteOutput = ""
env.workspace = ""
logfile.close()
... View more
09-20-2012
05:03 PM
|
0
|
1
|
1290
|
POST
|
Hi Jake, thanks for your help. Using cursors and python lists is a good idea. I got your code ALMOST to work, but let me explain what I had to do and what I still need to figure out. Basically, a lot of my fc's are inside datasets, so I need to cycle thru those. I added that and works ok. Then I realized I needed to exclude from results nulls and zero strings, I did by adding a SQL statement to the SearchCursor and then in the for row loop, I told it to not append values that are zero strings (using an expression I found in another forum post (len(fieldValues.strip()) <> 0). The code itself works, but the part I need to figure out is to avoid getting duplicate messages for invalid domain values. The issue is that since the first cursor (to populate listValues()) goes thru each row, if an invalid domain value is used more than once, I get duplicates messages (and I have a lot of that in my feature classes as they were populated by consultants with limited experience using geodatabases). I supposed something I could do is test if that value already exists in my listValues() list before adding it, but that seems like a lot of checking over and over again for the same value as it cycles row to row. Instead, what I think might be "cleaner" and faster code is to populate the listValues() by somehow doing what in SQL we call a SELECT DISTINCT query, not sure how to do that using ArcGIS python code. The other idea could be populating list by extracting the results of the Frequency gp tool, but I think the Frequency tool only exports to actual tables, no virtual tables like table views. So, I would have to add/ delete lots of temp tables in the process. any other thoughts... Below is the code with the modifications I made so far. Besides figuring out how to avoid dup messages, I need to re-modify code so it also cycles thru fc's that are NOT inside datasets, but that part is easy. thanks again...
import arcpy
from arcpy import env
env.overwriteOutput = 1
gdb = "C:/MyTempTossDir/test.gdb"
env.workspace = gdb
lstFDs = arcpy.ListDatasets("*", "Feature")
for fd in lstFDs:
env.workspace = gdb + "/" + fd
lstFCs = arcpy.ListFeatureClasses("*")
for fc in lstFCs:
lstFields = arcpy.ListFields(fc)
for field in lstFields:
if field.domain:
print fc + ": " + field.name + ": " + field.domain
arcpy.DomainToTable_management(gdb, field.domain, gdb + "/" + "tb_" + field.domain, "code", "description")
rows = arcpy.SearchCursor(fc, field.name + " IS NOT NULL", "", field.name)
listValues = []
for row in rows:
fieldValues = row.getValue(field.name)
if len(fieldValues.strip()) <> 0:
listValues.append(fieldValues)
del row, rows
rows = arcpy.SearchCursor(gdb + "/" + "tb_" + field.domain, "", "", "code")
listCodes = []
for row in rows:
fieldCodes = row.getValue("code")
listCodes.append(fieldCodes)
del row, rows
for n in listValues:
if n not in listCodes:
print fc + " contains field " + field.name + " with domain " + field.domain + " containing value " + n + " that is not a coded value"
... View more
09-20-2012
11:22 AM
|
0
|
0
|
1290
|
POST
|
Ok, I could help coming up w/ best way to write a python script to identify tables fields that violate domain values. I got over 100 feature classes using about 60 domains in a file geodatabase to check. My feature classes are NOT using subtypes (nor am I planning to use that in the near future). Here are my limitiations: > No, we can't afford Data Reviewer extension at this time (which I know has functionality to do this). > I'm still in ArcGIS 10 and it doesn't look like my organization will upgrade to 10.1 until "maybe" early 2013. > No, using ArcSDE is not an option at this time. (Nor does our IT group allow me to use personal SQL server instances). So, I'm stuck with using File geodatabases and my geodb is too big for a personal (Access) geodb. Below are some of thoughts, but I'm wondering if there's something simpler I could do. > I already generated a script that exports all the domains to tables in a file geodb. Ex. a domain called CodeStatus is exported to a table called "tb_CodeStatus". (Let's say these are my lookup tables). > I could generate a table that stores the feature class, field and domain being used. )Let's pretend I did that and the table is called "tb_DomainUsage"). I'm just not sure what's the best way to do what I want next. > Should I cycle thru each row in the tb_DomainUsage table, run something like the Frequency tool to create a temp table to store the unique values and then use that temp table to see if any of those values do NOT exist in the corresponding lookup table for that domain? And store the validation check results in another table, similar to the tb_DomainUsage table, but listing the domain values that did not match? > Other ideas.. My idea above seems like a lot of steps to try come up w/ gp tool that I wish ESRI had thought of in the first place. Thanks...
... View more
09-19-2012
09:12 AM
|
0
|
4
|
5931
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|