|
IDEA
|
The problem with using the keyboard, or the "down arrow" in the attribute table, is that the records scroll at a fixed, very slow speed. I need to able to grab the scroll bar when I'm in the "A's" and with a quick downward wrist movement, scroll to the "M's", which, in Arc Map, I can see I'm getting close to with the default scroll behavior. I never noticed any performance issues in Arc Map, or any other program that shows the records as your scroll (e.g. Excel).
... View more
07-22-2017
08:21 AM
|
4
|
0
|
8177
|
|
POST
|
Not entirely possible......you wouldn't be able to add rows to the excel table as you'd have to also figure out how to add a new objectid to each row.....which you could do if you were calling the SP that fired the new OID generation. This would be easier if you created a new table in SQL as the "back-end" for your excel table, and used triggers or SP's to accomplish the marriage with your SDE table.
... View more
07-20-2017
11:55 AM
|
0
|
0
|
897
|
|
POST
|
Could these be used for distant objects? Common request I get...what's the name of that mountain? Have lots of mountains that cover a large area, folks stand on top of the highest one and try to ID the others....
... View more
07-17-2017
09:21 AM
|
1
|
4
|
4411
|
|
POST
|
All GIS is going to tell you is yes, you're getting ripped off. What you need is probably going to cost more but....there exists digital metering devices for fuel pumps, what you need to do is hook up a GPS to the metering device. Everytime fuel flows through that nozzle, it will tag the coordinates. THEN you use GIS to match known locations of generators versus when the nozzle was activated. I used to have the same problem with fuel cards, someone telling me that a truck with a 22 gallon tank....took 32 gallons! Turns out they were filling up cans for personal use. That was easier to solve, didn't need GPS, just needed video from the gas station cameras.....
... View more
07-17-2017
09:01 AM
|
0
|
0
|
1426
|
|
IDEA
|
I down voted, don't think this one can be pulled off. Encryption is proprietary to the flavor of the database. I have enabled TDE on MSSQL, and forced certificates, which led to an arduous exercise of editing ODBC connections to recognize the encryption. On the performance? Horrible! Even with a local SDE, Arc Map performance dropped by a casually estimated 50%. If you're pushing your SDE services into a hosted feature service, adding https to the service end point accomplishes what you seek, in a round about way.
... View more
07-17-2017
07:34 AM
|
0
|
0
|
1612
|
|
POST
|
Regardless of wi-fi speed, we've always had problems syncing collector with either a lot of new updates and/or a "few" attachments. Be sure to vote up Sync Collector for ArcGIS via USB and
... View more
07-12-2017
08:33 AM
|
0
|
0
|
1753
|
|
POST
|
This is really hokey and could use a lot of cleaning. For some reason, I couldn't get around some limit to how the API retrieves the data, so I had to make multiple url calls for each 52-ish-day block to get a years worth of stats. This reads from a CSV of ITEM NAMES, and writes out stats to unique files. You have to pass dates as julian date. This idea was originally posted two years ago.Access Raw (Rest API) data from AGOL Feature Service usage statistics . This has been HUUUUUGELY helpful when we look at the raw AGOL service numbers compared to Google Analytics of web pages where we're embedding maps, so we can see what folks are interested in or using. The service statistics are way more telling than the number of times an item was viewed. This could easily be modified to write to one file or be more dynamic on dates instead of the ridiculous number of try blocks I have. import csv
import urllib
import urllib2
import json
import datetime
# need to get a token
tokenURL = 'https://www.arcgis.com/sharing/rest/generateToken'
params = {'f': 'pjson', 'username': 'AGOL_USER_NAME', 'password': 'AGOL_PASSWORD!', 'referer': 'https://www.arcgis.com'}
req = urllib2.Request(tokenURL, urllib.urlencode(params))
response = urllib2.urlopen(req)
data = json.load(response)
token = data['token']
# read list of AGOL service names
readCSV = list(csv.reader(open('service.csv')))
names = []
for row in readCSV:
name = row[0]
#generate url list of up to 7 api calls
#Esri truncates usage stats into blocks of approx. 52 days
#Making a single url call for entire year will fail
url1 = 'https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1451624400000&endTime=1456808400000&period=1d&vars=num&groupby=name&etype=svcusg&name='+(name)+'&stype=features&token='+token
url2 = 'https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1456808400000&endTime=1461988800000&period=1d&vars=num&groupby=name&etype=svcusg&name='+(name)+'&stype=features&token='+token
url3 = 'https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1461988800000&endTime=1467172800000&period=1d&vars=num&groupby=name&etype=svcusg&name='+(name)+'&stype=features&token='+token
url4 = 'https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1467172800000&endTime=1472356800000&period=1d&vars=num&groupby=name&etype=svcusg&name='+(name)+'&stype=features&token='+token
url5 = 'https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1472356800000&endTime=1477540800000&period=1d&vars=num&groupby=name&etype=svcusg&name='+(name)+'&stype=features&token='+token
url6 = 'https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1477540800000&endTime=1482728400000&period=1d&vars=num&groupby=name&etype=svcusg&name='+(name)+'&stype=features&token='+token
url7 = 'https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1482728400000&endTime=1483160400000&period=1d&vars=num&groupby=name&etype=svcusg&name='+(name)+'&stype=features&token='+token
#Make 7 url calls for year. Will fail if 7 calls and feature was posted mid-year
#so try blocks will keep trying less url calls
try:
print 'Reading the usage statistics for '+(name)+' for 2016....'
filename = (name)+'.csv'
data = json.loads(urllib.urlopen(url1).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url2).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url3).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url4).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url5).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url6).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url7).read())['data'][0]['num']
print 'Writing '+(filename)+'....'
with open(filename, 'wb') as output:
csv_writer = csv.writer(output)
csv_writer.writerow(['name','date','count'])
for date, count in data:
csv_writer.writerow([name,datetime.datetime.fromtimestamp(int(date)/1e3), count])
except Exception:
try:
print 'Reading the usage statistics for '+(name)+' for the last 313 days of 2016....'
filename = (name)+'.csv'
data = json.loads(urllib.urlopen(url2).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url3).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url4).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url5).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url6).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url7).read())['data'][0]['num']
print 'Writing '+(filename)+'....'
with open(filename, 'wb') as output:
csv_writer = csv.writer(output)
csv_writer.writerow(['name','date','count'])
for date, count in data:
csv_writer.writerow([name,datetime.datetime.fromtimestamp(int(date)/1e3), count])
except Exception:
try:
print 'Reading the usage statistics for '+(name)+' for the last 261 days of 2016....'
filename = (name)+'.csv'
data = json.loads(urllib.urlopen(url3).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url4).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url5).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url6).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url7).read())['data'][0]['num']
print 'Writing '+(filename)+'....'
with open(filename, 'wb') as output:
csv_writer = csv.writer(output)
csv_writer.writerow(['name','date','count'])
for date, count in data:
csv_writer.writerow([name,datetime.datetime.fromtimestamp(int(date)/1e3), count])
except Exception:
try:
print 'Reading the usage statistics for '+(name)+' for the last 209 days of 216....'
filename = (name)+'.csv'
data = json.loads(urllib.urlopen(url4).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url5).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url6).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url7).read())['data'][0]['num']
print 'Writing '+(filename)+'....'
with open(filename, 'wb') as output:
csv_writer = csv.writer(output)
csv_writer.writerow(['name','date','count'])
for date, count in data:
csv_writer.writerow([name,datetime.datetime.fromtimestamp(int(date)/1e3), count])
except Exception:
try:
print 'Reading the usage statistics for '+(name)+' for the last 157 days of 2016....'
filename = (name)+'.csv'
data = json.loads(urllib.urlopen(url5).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url6).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url7).read())['data'][0]['num']
print 'Writing '+(filename)+'....'
with open(filename, 'wb') as output:
csv_writer = csv.writer(output)
csv_writer.writerow(['name','date','count'])
for date, count in data:
csv_writer.writerow([name,datetime.datetime.fromtimestamp(int(date)/1e3), count])
except Exception:
try:
print 'Reading the usage statistics for '+(name)+' for the last 105 days of 2016....'
filename = (name)+'.csv'
data = json.loads(urllib.urlopen(url6).read())['data'][0]['num']
data = data + json.loads(urllib.urlopen(url7).read())['data'][0]['num']
print 'Writing '+(filename)+'....'
with open(filename, 'wb') as output:
csv_writer = csv.writer(output)
csv_writer.writerow(['name','date','count'])
for date, count in data:
csv_writer.writerow([name,datetime.datetime.fromtimestamp(int(date)/1e3), count])
except Exception:
try:
print 'Reading the usage statistics for '+(name)+' for the last 53 days of 2016....'
filename = (name)+'.csv'
data = json.loads(urllib.urlopen(url7).read())['data'][0]['num']
print 'Writing '+(filename)+'....'
with open(filename, 'wb') as output:
csv_writer = csv.writer(output)
csv_writer.writerow(['name','date','count'])
for date, count in data:
csv_writer.writerow([name,datetime.datetime.fromtimestamp(int(date)/1e3), count])
except:
print 'No usage statistics available too short time range'
pass
... View more
07-11-2017
12:02 PM
|
0
|
0
|
2391
|
|
POST
|
In Pro 2.0, I was VERY EXCITED to see the "New GUID" button when editing a feature that uses GUID's (not globalid!) to as a foreign key....so in testing...I hit the button, the GUID populated, then on to "Add New to Relationship" to add a row to the child table in the relationship. Hmmmm what happens if I hit the "New GUID" button again? A new GUID appears (Primary key in this case)...whoa...my relationship is gone. Yep...there is now an orphan row in the child table using the GUID from the first time I hit the green button. What SHOULD be happening, is, if there is a parent/child relationship using the GUID, hitting that button should check/warn the user that there is already a child row in the related table OR, hitting that button a second time should update the related row GUID, OR, the button should be disabled if there's already a related row hanging off that GUID. This is a problem in Arc Map too, I've seen folks recalculate the GUID several times ("I didn't think it worked the first time") and trying to hunt down orphan records in the related table.
... View more
07-11-2017
11:03 AM
|
0
|
0
|
757
|
|
POST
|
Still not present in Pro 2.0. So when will this be added to the product? This is a pretty critical workflow for us, as we don't have the best network. In Arc Map: In Pro....?
... View more
07-11-2017
07:44 AM
|
0
|
2
|
1580
|
|
BLOG
|
"What would you like to see next in ArcGIS Pro?" The same features and functionality as in Arc Map.
... View more
07-11-2017
04:25 AM
|
4
|
0
|
14248
|
|
POST
|
Can you run Fiddler while you start Pro, then attempt to login? Is your Portal set to http or https? If https, has the certificate expired? Does your workstation trust the certificate on the Portal? Can you authenticate against AGOL? Can you make a "connection" to any Portal (there is no such thing as ArcGIS Pro Portal) in ArcMap? Can you login to the Portal via the Web UI?
... View more
07-07-2017
06:02 AM
|
0
|
0
|
3236
|
|
POST
|
Is this supposed to be the default behavior? A SQL 2014 ENT GDB, version 10.3.1, a view that IS NOT registered with the DB, works fine in ArcMap and GIS SVR (also 10.3.1). When I right click on the view in Pro 2.0 Catalog thingy, and select Properties, Pro crashes. This happens every time. Are unregistered views blocked now?
... View more
07-06-2017
08:29 AM
|
0
|
3
|
1413
|
|
POST
|
Seems to be working now. I have less confidence in ArcGIS Online Health Dashboard . as of yesterday morning it was showing "Healthy" when things clearly weren't working. I'm guessing there's no after-hours monitoring of this service, as the first ESRI confirmation of the outage coincided at around 7 AM west coast time?
... View more
06-30-2017
05:50 AM
|
0
|
1
|
1843
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 05-17-2022 12:19 PM | |
| 1 | 03-14-2019 06:24 AM | |
| 1 | 07-12-2018 09:29 AM | |
| 1 | 06-27-2019 12:08 PM | |
| 2 | 09-23-2019 11:03 AM |
| Online Status |
Offline
|
| Date Last Visited |
04-26-2026
07:12 AM
|