POST
|
Hello I am using survey 123 connect. First question is for example, "How many people bought a fishing license in your household this year?" Lets say the user enters 5 Next question is "how many people in your household fished this year?" I want to constrain this to be 5 or less. I have seen things like .+<{Q1A} but that does not work any help?
... View more
07-20-2023
03:02 PM
|
1
|
2
|
426
|
POST
|
Thanks for that, it does return the approriate number, but not the 'all', it defaults to another number
... View more
05-16-2023
01:40 PM
|
0
|
0
|
349
|
POST
|
In the dashborad, one panel(p1) controls another panel(P2) P1 has a list of numbers ( 9-18) when a number is selected it will display that number along with other information. That works fine On the P1 list is also an option for 'all' I want to display 'all' when that is selected but it defaults to one of the numbers on the list. I have tried several variations in Arcade, this seems logical but it does not work. Am I using 'include' wrong var dt_tmstp = $datapoint.WeekStartDate
var dt = (Month(dt_tmstp)+1) + '-' + Day(dt_tmstp) + '-' + Year(dt_tmstp)
var L =[9,10,11,12,13,14,15,16,17,18]
var x = ($datapoint["BiWeek"])
if Includes(L, x){
return {
textColor:'black',
backgroundColor:'#9ab9b5',
middleText: $datapoint["BiWeek"],
middleTextColor: '',
middleTextOutlineColor: '',
middleTextMaxSize: 'large',
bottomText: 'biweek period start: ' + dt,
}
}
else{
return {
textColor:'black',
backgroundColor:'#9ab9b5',
middleText:["All"],
middleTextColor: '',
middleTextOutlineColor: '',
middleTextMaxSize: 'large',
}
}
... View more
05-16-2023
12:43 PM
|
0
|
2
|
371
|
POST
|
I am attemting to change symbology based on map series title using arcade in pro. However, I dont see any globals related to layout. Am I dreaming too big here? for example, I have four pages in series, the spatial extent is identical. I have similar columns when the page is changed I want to show only that data. I thhik in the symbology for that layer... In the "field" I can add arcade code to match the title to the column. I just dont see a way to reference layout items. I appreciate any help. for example Decode( $map.series
'1996-2000','$feature.F_Effort_prop_user_year_bin___96_00',
'2001-2005','$feature.F_Effort_prop_user_year_bin___01_05',
'2006-2010','$feature.F_Effort_prop_user_year_bin___06_10',
'2011-2016','$feature.F_Effort_prop_user_year_bin___11_16',
'none') where map series title is 1996-2000 and the column is named F_Effort_prop_user_year_bin___96_00. however "$map.series" is not an actuall thing, is there a reference I can use here?
... View more
08-23-2019
11:21 AM
|
1
|
0
|
598
|
POST
|
this worked, adding &search=true&searchextent=true&find=286 and not referencing the feature https://xxxx.maps.arcgis.com/apps/webappviewer/index.html?id=a12a453a266c4b05bf6244aee77a12ed&search=true&searchextent=true&find=286
... View more
08-05-2019
01:52 PM
|
0
|
0
|
556
|
POST
|
I am trying to search/zoom to a feature using the URL on a web application. I am using the feature=layerID;searchfield;searchvalue format after the web URL. Nothing happens name of the feature is eRegs_Location_Low URL is: https://xxxx.maps.arcgis.com/apps/webappviewer/index.html?id=a12a453a266c4b05bf6244aee77a12ed&feature=eRegs_Location_Low;locationID;279 the REST looks like https://gisdev.xxxx.alaska.gov/ags/rest/services/sf_public/E_Regs_Low/MapServer/0 is there something wrong with this format?
... View more
08-05-2019
12:21 PM
|
0
|
1
|
652
|
POST
|
When I use this to update a field: fields = ['Index', 'wind']
arcpy.AddMessage(fc)
with arcpy.da.UpdateCursor(fc,fields) as cursor:
for row in cursor:
#wind = row[1]
#Index = row[0]
arcpy.AddMessage(row)
if (row[1] >= 0 and row[1] <= 20):
row[0] = 5
elif (row[1] > 20 and row[1] <= 70):
row[0] = 4
elif (row[1] > 70 and row[1] <= 110):
row[0] = 3
elif (row[1] > 110 and row[1] <=160):
row[0] = 2
elif(row[1] > 160 and row[1] <=200):
row[0] = 1
elif(row[1] > 200 and row[1] <=250):
row[0] = 2
elif(row[1] > 250 and row[1] <=290):
row[0] = 3
elif(row[1] > 290 and row[1] <=340):
row[0] = 4
elif(row[1] > 340):
row[0] = 5
cursor.updateRow(row)
arcpy.AddMessage(row) and check the messages I get [None, 101] [3, 101] [None, 56] [4, 56] [None, 24] [4, 24] [None, 47] [4, 47] showing that Index has nothing and wind has data which is right then the next add message has data in both. However the actual table never gets updated but the tool completes without error.
... View more
05-29-2019
04:46 PM
|
0
|
0
|
990
|
POST
|
Sorry, I will try to clarify. In the version I used codeblocks, (method 3) I tested the code in the field calculator and that was successful. In method two above I used addmessage to see the results in each stage and the output seems correct but no change in the feature class table. The code at this point can not be test on the interactive withndow as it requires to get parameters from users. If I put temp values in, it works fine. Off for holiday, get back to it later. Thanks
... View more
05-19-2019
04:42 AM
|
0
|
3
|
990
|
POST
|
Yes, they all work. I did an addmessage be for and after the function. Before index is 0 and after it has a number but it does not seem to write to the table.
... View more
05-18-2019
01:07 PM
|
0
|
5
|
990
|
POST
|
For what is worth, I have tried all three methods. They all run without error but do not fill in the index field and does not report any errors. Method 1
index = ['Index']
rows = arcpy.UpdateCursor(fc, index)
for row in rows:
if (row.wind >= 0 and row.wind <= 20):
index = 5
elif (row.wind > 20 and row.wind <= 70):
index = 4
elif (row.wind > 70 and row.wind <= 110):
index = 3
elif (row.wind > 110 and row.wind <=160):
index = 2
elif(row.wind > 160 and row.wind <=200):
index = 1
elif(row.wind > 200 and row.wind <=250):
index = 2
elif(row.wind > 250 and row.wind <=290):
index = 3
elif(row.wind > 290 and row.wind <=340):
index = 4
elif(row.wind > 340):
index = 5
rows.updateRow(row)
del row
del rows
method 2
fields = ['Index', 'wind']
with arcpy.da.UpdateCursor(fc,fields) as cursor:
for row in cursor:
#wind = row[1]
#Index = row[0]
if (row[1] >= 0 and row[1] <= 20):
row[0] = 5
elif (row[1] > 20 and row[1] <= 70):
row[0] = 4
elif (row[1] > 70 and row[1] <= 110):
row[0] = 3
elif (row[1] > 110 and row[1] <=160):
row[0] = 2
elif(row[1] > 160 and row[1] <=200):
row[0] = 1
elif(row[1] > 200 and row[1] <=250):
row[0] = 2
elif(row[1] > 250 and row[1] <=290):
row[0] = 3
elif(row[1] > 290 and row[1] <=340):
row[0] = 4
elif(row[1] > 340):
row[0] = 5
cursor.updateRow(row)'''
arcpy.AddMessage(arcpy.GetMessages())
method 3
expressionReclass = "Reclass(!wind!)"
codeblock_wind ='''def Reclass(wind):
if (wind >= 0 and wind <= 20):
return 5
elif (wind > 20 and wind <= 70):
return 4
elif (wind > 70 and wind <= 110):
return 3
elif (wind > 110 and wind <=160):
return 2
elif(wind > 160 and wind <=200):
return 1
elif(wind > 200 and wind <=250):
return 2
elif(wind > 250 and wind <=290):
return 3
elif(wind > 290 and wind <=340):
return 4
elif(wind > 340):
return 5'''
#cursor = arcpy.UpdateCursor(sel_lyr,'Index')
arcpy.CalculateField_management(stream + '_Buff', 'Index', expressionReclass,
'PYTHON_9.3', codeblock_wind)
... View more
05-17-2019
03:20 PM
|
0
|
0
|
990
|
POST
|
Thanks, it didnt give my any despite running the whole script. I will try another method.
... View more
05-16-2019
02:21 PM
|
0
|
0
|
990
|
POST
|
I should probably start a new question, by thought I would check here first. This code will run all the way through, all the fields gat added but the one at line 139 with the code block does nothing and I dont get any errors. I have tried changing the " to ' changing all the quotes and do not see any changes. am I doing the codeblock wrong? # -*- coding: utf-8 -*-
'''---------------------------------------------------------------------------
# Exposed.py
# Created on: 2019-04-10 Jason Graham
#
# Usage: For classifying hazard level from winds on cops of trees near
# Anadromous streams Primary and secondary previaling winds.
#
# Paramters <Workspace>
# <Prevailing_Wind_Direction>
# <Secondary_Prevailing_Wind_Direction>
# Selected Stream with a GNIS_Name field
#
# Description:
# When a stream is selected this tool will create a buffer for each side of a
# stream and use the direction of the prevailing and secondary winds to
# calculate a Wind Exposure class for each section of major angles along
# the stream.
# ---------------------------------------------------------------------------
'''
# Import arcpy module (14)
import arcpy as arcpy, datetime
import os
arcpy.env.overwriteOutput = True
arcpy.env.workspace = 'in_memory'
startTime = datetime.datetime.now()
arcpy.AddMessage ('Start processing at :')
arcpy.AddMessage (startTime.strftime('%Y-%m-%d %H:%M'))
# Get Parameters from user
workspace = arcpy.GetParameterAsText(0)
windP = arcpy.GetParameterAsText(1)
windS = arcpy.GetParameterAsText(2)
# Current workspace
aprx = arcpy.mp.ArcGISProject('CURRENT')
m = aprx.activeMap
# Get Selected stream info
lyrs = m.listLayers()
for lyr in lyrs:
if lyr.getSelectionSet():
sel_lyr = lyr.dataSource
field = 'GNIS_Name'
rows = arcpy.da.SearchCursor(lyr,field)
for row in rows:
# get name of selected stream
Stream_Pre = row[0]
# replaces spaces with underscore
Stream_Name = Stream_Pre.replace(' ','_')
# Local variables:
stream = os.path.join(str(workspace),Stream_Name)
# Main Body of Script
arcpy.cartography.SimplifyLine(sel_lyr, stream, 'POINT_REMOVE', '45 Meters',
'RESOLVE_ERRORS', 'NO_KEEP', 'CHECK', '')
arcpy.management.SplitLine(stream,stream + '_Split')
# Buffer the stream(Right)
arcpy.Buffer_analysis(stream + '_Split' , stream + '_Buff', '63 Feet', 'RIGHT'
, 'FLAT', 'NONE', '', 'PLANAR')
# Add Field named Angle
arcpy.AddField_management(stream + '_Buff', 'Angle', 'LONG', '', '', '', '',
'NULLABLE', 'NON_REQUIRED', '')
# Process: Calculate Polygon Main Angle (R)
arcpy.CalculatePolygonMainAngle_cartography(stream + '_Buff', 'Angle',
'GEOGRAPHIC')
# Process: Add Field (Wind)
arcpy.AddField_management(stream + '_Buff', 'wind', 'LONG', '', '', '20', '',
'NULLABLE', 'REQUIRED', '')
arcpy.CalculateField_management(stream + '_Buff', 'wind', windP)
# Process: Calculate Field (Adjust Angle R)
expression1 = 'getClass((!Angle!)+ !wind!)'
codeblock1 = '''
def getClass(n):
if n < 0:
return n * -1
else:
return n'''
arcpy.CalculateField_management(stream + '_Buff', 'wind', expression1,
'PYTHON3', codeblock1)
# Process: Add Field (Wind2_R)
arcpy.AddField_management(stream + '_Buff', 'wind2', 'LONG', '', '', '20', '',
'NULLABLE', 'NON_REQUIRED', '')
arcpy.CalculateField_management(stream + '_Buff', 'wind2', windS)
# Process: Calculate Field (Adjust Secondary Angle R)
expression2 = 'getClass((!Angle!)+ !wind2!)'
arcpy.CalculateField_management(stream + '_Buff', 'wind2', expression2,
'PYTHON3', codeblock1)
# Process: Add Field (Index_R)
arcpy.AddField_management(stream + '_Buff', 'Index', 'LONG', '', '', '20', '',
'NULLABLE', 'REQUIRED', '')
# Process: Calculate Field (Index R)
expressionReclass = "Reclass(!wind!)"
codeblock_wind ='''def Reclass(wind):
if (wind >= 0 and wind <= 20):
return 5
elif (wind > 20 and wind <= 70):
return 4
elif (wind > 70 and wind <= 110):
return 3
elif (wind > 110 and wind <=160):
return 2
elif(wind > 160 and wind <=200):
return 1
elif(wind > 200 and wind <=250):
return 2
elif(wind > 250 and wind <=290):
return 3
elif(wind > 290 and wind <=340):
return 4
elif(wind > 340):
return 5'''
arcpy.CalculateField_management(stream + '_Buff', 'Index', expressionReclass,
'PYTHON_9.3', codeblock_wind)
# Process: Add Field (Index2_R)
arcpy.AddField_management(stream + '_Buff', 'Index2', 'LONG', '', '', '20', '',
'NULLABLE', 'NON_REQUIRED', '')
# Process: Calculate Field (Index2 R)
expressionReclass2 = 'Reclass(!wind2!)'
codeblock_wind2 = '''def Reclass(wind2):
if (wind2 >= 0 and wind2 <= 20):
return 5
elif (wind2 > 20 and wind2 <= 70):
return 4
elif (wind2 > 70 and wind2 <= 110):
return 3
elif (wind2 > 110 and wind2 <=160):
return 2
elif(wind2 > 160 and wind2 <=200):
return 1
elif(wind2 > 200 and wind2 <=250):
return 2
elif(wind2 > 250 and wind2 <=290):
return 3
elif(wind2 > 290 and wind2 <=340):
return 4
elif(wind2 > 340):
return 5'''
arcpy.CalculateField_management(stream + '_Buff', 'Index', expressionReclass2,
'PYTHON_9.3', codeblock_wind2)
# Process: Add Field (Sum_R)
arcpy.AddField_management(stream + '_Buff', 'SumOfRanks', 'SHORT', '', '',
'20', '', 'NULLABLE', 'NON_REQUIRED', '')
# Process: Calculate Field (Add Index R)
arcpy.CalculateField_management(stream + '_Buff', 'Index', '!Index!+ !Index2!',
'PYTHON_9.3', '')
# Process: Add Field (Class_R)
arcpy.AddField_management(stream + '_Buff', 'Class', 'SHORT', '', '', '20', '',
'NULLABLE', 'NON_REQUIRED', '')
# Process: Calculate Field (Class R)
codeblock3 = '''
def Reclass(SumOfRanks):
if (SumOfRanks >= 0 and SumOfRanks <= 1):
return 1
elif (SumOfRanks > 1 and SumOfRanks <= 4):
return 2
elif (SumOfRanks > 4 and SumOfRanks <= 6):
return 3
elif (SumOfRanks > 6 and SumOfRanks <= 8):
return 4
elif (SumOfRanks > 8 and SumOfRanks <= 10):
return 5'''
arcpy.CalculateField_management(stream + '_Buff', 'Index',
'Reclass(!SumOfRanks!)', 'PYTHON_9.3'
,codeblock3)
# add new layer and delete extra layers
m.addDataFromPath (stream + '_Buff')
#arcpy.DeleteFeatures_management (stream)
#arcpy.DeleteFeatures_management (stream + '_Split')
endTime = datetime.datetime.now()
arcpy.AddMessage ('Finished processing at :')
arcpy.AddMessage (endTime.strftime('%Y-%m-%d %H:%M'))
arcpy.AddMessage ('Process duration:')
arcpy.AddMessage (endTime - startTime)
... View more
05-16-2019
12:21 PM
|
0
|
10
|
3511
|
POST
|
Thanks for the help! This is what works: import arcpy
aprx = arcpy.mp.ArcGISProject("CURRENT")
m = aprx.activeMap
lyrs = m.listLayers()
for lyr in lyrs:
if lyr.getSelectionSet():
sel_lyr = lyr.dataSource
field = "GNIS_Name"
rows = arcpy.da.SearchCursor(lyr,field)
for row in rows:
print(row[0]) now off for the rest of the code....
... View more
05-09-2019
10:10 AM
|
0
|
0
|
3511
|
POST
|
well I am learning a lot of ways not to do it. This statement will print the all the names, not just the selected row aprx = arcpy.mp.ArcGISProject("CURRENT")
m = aprx.activeMap
lyrs = m.listLayers()
for lyr in lyrs:
if lyr.getSelectionSet():
sel_lyr = lyr.dataSource
sel_oid = lyr.getSelectionSet()
with arcpy.da.SearchCursor(sel_lyr,"GNIS_Name") as cursor:
for row in cursor:
print(row) All I want is to know the path of the layer that has a selected feature, and know what the name is in the "GNIS_Name" Field of that selected feature the lyr.getSelectionSet will give me the data source and the OID of the selected row. I have tried to use an SQL in the search cursor like this with arcpy.da.SearchCursor(sel_lyr,"GNIS_Name",'OID@' = sel_oid) as cursor: and many variations like that, but always get a syntax error. is my entire approach wrong? I orignially did the project in MB but elected to move to Python. I essentially need a Get Field Value function.
... View more
05-02-2019
03:21 PM
|
0
|
14
|
3511
|
Title | Kudos | Posted |
---|---|---|
1 | 08-23-2019 11:21 AM | |
1 | 07-20-2023 03:02 PM | |
1 | 07-08-2014 05:06 PM |
Online Status |
Offline
|
Date Last Visited |
3 weeks ago
|