POST
|
I figured it out, the query string needs the dates in a very specific format, thanks for helping out. # time difference for querying timeDifference = datetime.datetime.now() - datetime.timedelta(days = 7) # create the query string for the first query queryString1 = 'Survey_Start > date \'{}\''.format(timeDifference.strftime('%Y/%m/%d %H:%M:%S'))
... View more
11-11-2019
08:47 AM
|
3
|
1
|
1872
|
POST
|
It still fails timeDifference = datetime.datetime.now() - datetime.timedelta(days = 7) queryString1 = 'Survey_Start>{}'.format(str(timeDifference)) query1Result = table.query(where=queryString1, out_fields='Project') message 'where' parameter is invalid
... View more
11-11-2019
07:15 AM
|
0
|
0
|
1872
|
POST
|
I'm trying to use the Python API in a regularly scheduled script to query data from a table, I'd like to query the weeks data for processing. I can query any non date field just fine, but whenever I try to query a date field I get either a 'where' parameter invalid or "Unable to perform query. Please check your parameters." Below is the code, I have also tried numerous different date formats, but to no avail. timeDifference = datetime.datetime.now() - datetime.timedelta(days = 7) queryString1 = 'Survey_Start>' + str(timeDifference) query1Result = table.query(where=queryString1, out_fields='Project')
... View more
11-11-2019
05:44 AM
|
0
|
6
|
2342
|
POST
|
Howdy, I have a feature service with a point layer and a table with related records that holds data collected by field staff with Survey 123. I need to automate the task of creating PDF reports for the data collected each day. I'm having trouble finding a clear way to access that related data or the data in survey123 via an automated process. Could someone here point me in the right direction?
... View more
07-01-2019
01:03 PM
|
0
|
1
|
280
|
IDEA
|
This would be very helpful, right now I have to validate the anchor point positions by hand which kind of defeats the purpose of automating with python
... View more
06-06-2019
12:14 PM
|
0
|
0
|
2182
|
POST
|
Hi All, I've been trying to figure out if it's possible to point a custom widget back to the results of a GP service that are associated with that task, but I'm having trouble finding information on it. I need to build a better graphing widget than the pre-built ones, has anyone here ever accessed GP results with a custom widget?
... View more
04-26-2019
08:03 AM
|
0
|
1
|
318
|
POST
|
Hi everyone, I'm trying to get create a geoprocessing service that returns data that I can use in the infographic or chart widget in WAB, but I'm having a tough time doing it. For geoprocessing the user creates a few points on the map, a script then extracts data from rasters at those points. I would like to graph that data, but I can't seem to figure out how to: A. set up my script properly to create the right data/have the correct environment settings for WAB B. call the results in the widget Right now we have the script below working and published, and we have the service set up to return a map service, and we've pointed the chart and infographic back to that service. However whenever we try to chart the results we only get the data that the tool was originally published with, not the most recent results of processing even though the script is working fine and producing unique results. We are using arcserver 10.5, and the basic version of WAB, this seems like a simple task but we've had a lot of trouble getting it to work right. Also right now this script creates a crude feature class to hold the resulting data, I'd like to be more efficient and have it in a table, however pointing the widgets back to a resulting table is even murkier than # Start script
#-----------------------------------------------------------------------------
import arcpy
import os
#set environments
arcpy.env.overwriteOutput = True
# Tool initialization
#-----------------------------------------------------------------------------
class Toolbox(object):
def __init__(self):
"""Define the toolbox (the name of the toolbox is the name of the
.pyt file)."""
self.label = "Value_Extraction_Tool"
self.alias = "Value Extraction Tool"
# List of tool classes associated with this toolbox
self.tools = [Tool]
class Tool(object):
def __init__(self):
#Define the tool (tool name is the name of the class)
self.label = "Value Extraction Tool"
self.description = ""
self.canRunInBackground = False
def getParameterInfo(self):
DataSource = arcpy.Parameter(
displayName="DataSource",
name="DataSource",
datatype="DEWorkspace",
parameterType="Required",
direction="Input")
InputPoint = arcpy.Parameter(
displayName="InputPoint",
name="InputPoint",
datatype="DEFeatureClass",
parameterType="Required",
direction="Input")
OutputFC = arcpy.Parameter(
displayName="OutputFC",
name="OutputFC",
datatype="DEFeatureClass",
parameterType="Output",
direction="Output")
params = [DataSource, InputPoint, OutputFC]
return params
def isLicensed(self):
# Set whether tool is licensed to execute.
return True
def updateParameters(self, parameters):
# Modify the values and properties of parameters before internal validation is performed.
# This method is called whenever a parameter has been changed.
# parameters[2].schema.geometryType = "Point"
# parameters[2].schema.geometryTypeRule = "As Specified"
return
def updateMessages(self, parameters):
#Modify the messages created by internal validation for each tool
#parameter. This method is called after internal validation.
return
def execute(self, parameters, messages):
# User input arguments
DataSource = parameters[0].valueAsText
InputPoint = parameters[1].valueAsText
OutputFC = parameters[2].valueAsText
# get the projection of the input data
InputSRS = arcpy.Describe(InputPoint).spatialReference
# Projection of the rasters
RasterSRS = arcpy.SpatialReference(4326)
# Create the output feature class
arcpy.CreateFeatureclass_management(os.path.dirname(OutputFC), os.path.basename(OutputFC), "POINT", "", "DISABLED", "DISABLED", InputSRS)
# Add fields to the table to hold the data
arcpy.AddField_management(OutputFC, "LABEL", "TEXT")
arcpy.AddField_management(OutputFC, "VALUE", "SHORT")
# Loop through geometry attributes and get the x and y
with arcpy.da.SearchCursor(InputPoint,['SHAPE@X', 'SHAPE@Y'], spatial_reference = RasterSRS) as cursor:
PointIndex = 1
for row in cursor:
X = row[0]
Y = row[1]
# Get rasters and extract data at an X and Y
index = 0
for (path, dirs, files) in os.walk(DataSource):
for ThisFile in files:
fName,fExt = os.path.splitext(ThisFile)
if fExt.upper() == ".IMG" or fExt.upper() == ".TIF":
RasterPath = path + "\\" + ThisFile
data = (arcpy.GetCellValue_management(RasterPath, str(X) + " " + str(Y), "").getOutput(0))
aquisition_date = arcpy.GetRasterProperties_management(in_raster = RasterPath, property_type = "ACQUISITIONDATE")
if str(aquisition_date).upper() == "UNKNOWN":
insertcursor = arcpy.InsertCursor(OutputFC)
row = insertcursor.newRow()
row.setValue("LABEL", "{}, Point: {}".format(index, PointIndex))
if data.isdigit() == True:
row.setValue("VALUE", int(data))
insertcursor.insertRow(row)
del insertcursor
index += 1
PointIndex += 1
return
... View more
04-02-2019
01:09 PM
|
0
|
0
|
320
|
POST
|
Is it possible to do a weighted network analysis in arcmap or pro? What I mean by that is I have a road network with hazards on that network, and I am wondering if it's possible to determine the shortest route through that network while encountering the fewest hazards using built in tools. I don't do network analysis very often, and I'm not 100% sure it can be done in network analyst.
... View more
03-28-2019
07:07 AM
|
0
|
2
|
578
|
POST
|
I have a python toolbox that I want to publish as a geoprocessing service, the problem is I can't set the geometry type of the output so it's failing when I try to use it as a GP service. Does anyone know how to set the geometry type of a python toolbox out put? Tool was published from arcmap 10.6, running on arcserver 10.5. import arcpy
import os
# Tool initialization
#-----------------------------------------------------------------------------
class Toolbox(object):
def __init__(self):
"""Define the toolbox (the name of the toolbox is the name of the
.pyt file)."""
self.label = "Value_Extraction_Tool"
self.alias = "Value Extraction Tool"
# List of tool classes associated with this toolbox
self.tools = [Tool]
class Tool(object):
def __init__(self):
#Define the tool (tool name is the name of the class)
self.label = "Value Extraction Tool"
self.description = ""
self.canRunInBackground = False
def getParameterInfo(self):
DataSource = arcpy.Parameter(
displayName="DataSource",
name="DataSource",
datatype="DEWorkspace",
parameterType="Required",
direction="Input")
InputPoint = arcpy.Parameter(
displayName="InputPoint",
name="InputPoint",
datatype="DEFeatureClass",
parameterType="Required",
direction="Input")
OutputFC = arcpy.Parameter(
displayName="OutputFC",
name="OutputFC",
datatype="DEFeatureClass",
parameterType="Output",
direction="Output")
#OutputFC.schema.geometryType = "Point"
params = [DataSource, InputPoint, OutputFC]
return params
def isLicensed(self):
# Set whether tool is licensed to execute.
return True
def updateParameters(self, parameters):
# Modify the values and properties of parameters before internal validation is performed.
# This method is called whenever a parameter has been changed.
parameters[2].schema.geometryType = "Point"
parameters[2].schema.geometryTypeRule = "As Specified"
return
def updateMessages(self, parameters):
#Modify the messages created by internal validation for each tool
#parameter. This method is called after internal validation.
return
def execute(self, parameters, messages):
arcpy.env.overwriteOutput = True
# User input arguments
DataSource = parameters[0].valueAsText
InputPoint = parameters[1].valueAsText
OutputFC = parameters[2].valueAsText
# Handle all input point procesing
arcpy.CopyFeatures_management(InputPoint, OutputFC)
# Add fields to hold temporal data
arcpy.AddField_management(OutputFC, "LABEL", "TEXT")
arcpy.AddField_management(OutputFC, "VALUE", "SHORT")
# Loop through geometry attributes and get the x and y
with arcpy.da.SearchCursor(InputPoint,['SHAPE@X', 'SHAPE@Y']) as cursor:
PointIndex = 1
for row in cursor:
X = row[0]
Y = row[1]
# Get rasters and extract data at an X and Y
index = 0
for (path, dirs, files) in os.walk(DataSource):
for ThisFile in files:
fName,fExt = os.path.splitext(ThisFile)
if fExt.upper() == ".IMG" or fExt.upper() == ".TIF":
RasterPath = path + "\\" + ThisFile
data = (arcpy.GetCellValue_management(RasterPath, str(X) + " " + str(Y), "").getOutput(0))
aquisition_date = arcpy.GetRasterProperties_management(in_raster = RasterPath, property_type = "ACQUISITIONDATE")
if str(aquisition_date).upper() == "UNKNOWN":
insertcursor = arcpy.InsertCursor(OutputFC)
row = insertcursor.newRow()
row.setValue("LABEL", "{}, Point: {}".format(index, PointIndex))
if data.isdigit() == True:
row.setValue("VALUE", int(data))
insertcursor.insertRow(row)
del insertcursor
index += 1
PointIndex += 1
return Here is the results of when I publish it Task: Value Extraction Tool
Display Name: Value Extraction Tool
Description:
Category:
Help URL: https://localhost:6443/arcgis/rest/directories/arcgisoutput/Test/WA_VE_Tool_GPServer/Test_WA_VE_Tool/Tool.htm
Execution Type: esriExecutionTypeAsynchronous
Parameters:
Parameter: InputPoint
Data Type: GPFeatureRecordSetLayer
Display Name InputPoint
Description: ESRS
Direction: esriGPParameterDirectionInput
Default Value:
Geometry Type: esriGeometryPoint
HasZ: false
HasM: false
Spatial Reference: 4326 (4326)
Fields:
OBJECTID ( type: esriFieldTypeOID , alias: OBJECTID )
Features: None.
Parameter Type: esriGPParameterTypeRequired
Category:
Parameter: OutputFC
Data Type: GPFeatureRecordSetLayer
Display Name OutputFC
Description: ESRS
Direction: esriGPParameterDirectionOutput
Default Value:
Geometry Type:
HasZ: false
HasM: false
Spatial Reference: N/A
Fields: None
Features: None.
Parameter Type: esriGPParameterTypeRequired
Category:
... View more
03-25-2019
10:42 AM
|
0
|
0
|
821
|
POST
|
I figured this out there was nothing wrong with the URLs, it was a refreshing issue.
... View more
03-19-2019
02:45 PM
|
0
|
0
|
380
|
POST
|
I'm trying to launch and fill out parts of a survey123 form with attributes from a map service on Explorer, I've figured out most of it, but I'm having an issue where only one field in the survey is being filled out. It seems I'm doing everything right, but I can't get it to work right. I'm hoping someone here can help me out. URL: arcgis-survey123://?itemID=6d45d37261524def90131c01fcae73d1&field:Well_Key={OBJECTID}&field:Project={Project}&field:Well_ID={Well_ID}&field:Well_Material={Casing_Material}&field:Casing_Diameter={Casing_Diameter}&field:Installed_Depth={Depth}&field:Screen_Height={Screen_Height} Survey123 section to be filled out from attributes: hidden Well_Key Well_Key text Project <center><b>Project</b></center> text Well_ID <center><b>Well ID</b></center> date Survey_Date <Center><b>Date</b></center> start Survey_Start end Survey_End select_one staff Personel_Present Staff hidden Auto_Stable_Meter Auto Stabling Meter? begin group Well_Construction <center><b>Well Construction</b></center> select_one material Well_Material Well Material decimal Casing_Diameter Casing Diameter decimal Installed_Depth Installed Depth decimal Screen_Height Screen Height Feature Attributes: Software: Map Service hosted on Arcgis online, published from Arcmap 10.5 Survery123 form developed on survey123 connect v 3.3.51 on windows 7 forms tested on Samsung S7 android version 8
... View more
03-16-2019
12:25 PM
|
0
|
2
|
707
|
POST
|
Hi everyone, I'm just wondering if it's possible to change a fields font or background color in Survey123 based on a calculation. I have a form where we have a lot of stability calculations, I'd like to change the background or text color if the values entered in the form are within a certain range. Right now I have calculated fields that indicate if the values are within range, which works well enough, I'd just like to simplify the form.
... View more
03-14-2019
07:09 AM
|
2
|
2
|
2526
|
POST
|
I'm trying to write a simple if statement in a survey123 form that will perform a calculation if the condition is true and perform a different calculation if the condition is false. It places a string of junk in the calculated field, instead of calculated values, if I remove the calculations the if statement works just fine. Can anyone help me on this? if(${Static_Water_Level}<(${Installed_Depth} - ${Screen_Height}), ${Installed_Depth} - (${Screen_Height}div2), ${Static_Water_Level} + ((${Installed_Depth} -${Static_Water_Level})div2))
... View more
03-13-2019
12:28 PM
|
1
|
2
|
1504
|
Title | Kudos | Posted |
---|---|---|
1 | 03-13-2019 12:28 PM | |
1 | 05-01-2018 04:29 PM | |
1 | 06-07-2017 12:21 PM | |
1 | 02-24-2019 06:40 PM | |
3 | 11-11-2019 08:47 AM |
Online Status |
Offline
|
Date Last Visited |
02-24-2022
08:12 AM
|