POST
|
Dashboard just focuses on a single, widget-based non-scrolling screen that provides statistical insight. It doesn't allow for scrolling and you can dock / stack widgets. Experience builder is a custom application design program. You can link to other applications (like dashboards) or integrate things like Survey123. You have more freedom with different website templates and can use it to create everything from galleries, hubs, and map or non-map focused applications. You can use it to filter data and update widgets based on data selection, which is similar to dashboard, and you can connect that to Survey123, which I don't think you can do in Dashboard. There are lots of other differences, such as being able to view attachments in an Experience. I use Dashboard when I just need a data snapshot, and Experience when I need to build a website / custom application that is data aware.
... View more
02-03-2021
08:24 AM
|
7
|
0
|
6143
|
POST
|
Working on a script to generate a series of property record card PDFs from a map series using multiprocessing. Learned about multiprocessing in an Advanced Python class and thought it could be used to help with this project. Has to be run nightly on approx. 3,300 parcels, but is taking 12+ hours due to slowing drastically as it runs. Memory also increases, but have not been able to locate memory leak (newer to Python) and Spyder locking up. Written using PyScripter and Python 3.6.12 . Ideally, would be able to be run once a year to generate two PDFs for each of 75,000 parcels. Developing on a laptop with Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz 2.70 GHz processor and 32 GB RAM / 8 cpu. Below is the function. It also has to look for building sketches and attach them to the resulting card if they exist. The Parcel identifier is fed into the map series, generates 3 pages, and then looks for building sketches. Looking for any guidance, function and main script attached as zip file. Here is the function: import os, sys
import arcpy
arcpy.env.overwriteOutput = True
def worker(mxdPath, outFolder, name):
"""
This is the function that gets called and does the work of exporting the DDP for the UPI specified.
Note that this function does not try to write to arcpy.AddMessage() as nothing is ever displayed. If the cexport succeeds then it returns TRUE else FALSE.
"""
try:
mxdFile = arcpy.mp.ArcGISProject(mxdPath)
cleanName = name.replace("/", "_")
finalPDF = os.path.join(outFolder, cleanName + ".pdf")
l = mxdFile.listLayouts("Page_1")[0]
if not l.mapSeries is None:
ms = l.mapSeries
if ms.enabled:
ms.currentPageNumber = ms.getPageNumberFromName(name)
file1 = os.path.join(outFolder, cleanName)
ms.exportToPDF(file1, "CURRENT", resolution=300)
ms.refresh()
pdfDoc = arcpy.mp.PDFDocumentOpen(finalPDF)
l = mxdFile.listLayouts("Page_2")[0]
if not l.mapSeries is None:
ms = l.mapSeries
if ms.enabled:
ms.currentPageNumber = ms.getPageNumberFromName(name)
pageTwo = cleanName + "t2"
file2 = os.path.join(outFolder, pageTwo + ".pdf")
ms.exportToPDF(file2, "CURRENT", resolution=300)
pdfDoc.appendPages(file2)
os.remove(file2)
#ms.refresh()
try:
resSketch = ms.pageRow.SKETCH
if os.path.exists(resSketch):
l = mxdFile.listLayouts("Page_3")[0]
if not l.mapSeries is None:
ms = l.mapSeries
if ms.enabled:
ms.currentPageNumber = ms.getPageNumberFromName(name)
pageThree = cleanName + "t3"
file3 = os.path.join(outFolder, pageThree + ".pdf")
ms.exportToPDF(file3, "CURRENT", resolution=300)
pdfDoc.appendPages(file3)
os.remove(file3)
del file3, resSketch
except:
pass
try:
#Checks for existence of Sketch PDF & appends it to new PDF
commSketch = ms.pageRow.COMMERCIAL_SKETCH
pdfDoc.appendPages(commSketch)
except:
pass
pdfDoc.saveAndClose()
del pdfDoc, file1, file2, mxdPath, resSketch
del mxdFile
return True
except arcpy.ExecuteError:
# Geoprocessor threw an error
arcpy.AddError(arcpy.GetMessages(2))
print("Execute Error:", arcpy.ExecuteError)
except Exception as e:
tb = sys.exc_info()[2]
print("Failed at Line %i \n" % tb.tb_lineno)
print("Error: {} \n".format(e))
return False
... View more
02-03-2021
06:34 AM
|
0
|
7
|
2982
|
POST
|
Then I'd reiterate my earlier response that sounds like you could set up a data driven page / map series to help with the mailing parts. As for historical data, you can script exports of historical snapshots, or set up a parcel fabric to keep track of your historical stuff. I could see a few different methods to do this.
... View more
02-02-2021
08:36 AM
|
2
|
0
|
1864
|
POST
|
Is the page or so you send to each person the same? Or does it have a summary of your data? Where is your contact data - is it in a related table of some sort? Say could you create a set of map series / data driven pages that are then emailed to your contact list? All of that could be done with a Python script.
... View more
01-29-2021
05:57 AM
|
0
|
0
|
1883
|
POST
|
Who manages your parcels? As a county GIS Director, I give regular parcel ownership updates to my municipalities. If someone is already maintaining contact info on parcels that could potentially give you a service or a regular extract, that might be one less headache to worry about? As for a workflow, I'm not sure what data manipulation you need, but I could see this going a couple of different ways. the notification solution exports a mailing list I believe a dashboard or some other application could allow you to see the problem properties forms for updating various tables and or features Potentially, it seems like you could combine these features into an Experience. I'm a little fuzzy on what you want the related tables to do?
... View more
01-28-2021
01:32 PM
|
0
|
2
|
1894
|
POST
|
This helps and at least gives me a place to start, thanks!
... View more
01-22-2021
06:48 AM
|
0
|
0
|
1245
|
POST
|
Well, this thread certainly help explain things. I was having the exact same problem, and it was interfering with selections in my table and map (the map was jittery, flashing between multiple selections from multiple sources). I rather wish I had the ability to just make the Feature Info a reactive source - so that someone could select an asset in a table or on the map and it would show the feature info and attachments since the order of my assets is not of importance. A list wouldn't really help with my issue, so I'm going to try the filter widget and see if that helps.
... View more
01-20-2021
12:56 PM
|
0
|
0
|
1197
|
POST
|
I'm having an issue with a map series / data driven pages set of scripts.
... View more
01-15-2021
08:25 AM
|
0
|
1
|
1310
|
POST
|
First thing I did. Compared it and it is exactly the same, baring the connection pathway. This is driving me nuts. I've also got a Reconcile Versions python tool holding onto a previous run settings where I ran only one version, even when the tool has 5 versions as inputs. Lord save me! 😑
... View more
01-15-2021
08:24 AM
|
0
|
1
|
1310
|
POST
|
So I have a script that is supposed to update tile caches on the server, and it is putting out messages that it is completing successfully. However, this tool is completing in less then 10 seconds for two different service caches. Running the tool manually is around 10 minutes or more for one of these, as the tiles are updating based on an AOI with hundreds of polygons. My server is old and slated for upgrade, and we routinely have to restart it as it's hanging onto old cache tiles. I don't think the python cache update is working, but again it is difficult to tell due to the server hanging onto old tiles. My Spidey senses are tingling - the script really shouldn't take less then 10 seconds, should it? Edit: I just converted this to Python 3, it worked perfectly in 2.7 and took about 12 minutes.
... View more
01-14-2021
12:35 PM
|
1
|
9
|
1348
|
POST
|
My shapefile was located on a shared network drive, so I'd verify the file path you are using or try the project template idea.
... View more
01-14-2021
11:50 AM
|
0
|
4
|
1785
|
POST
|
I put your code in a blank ArcPro with my own shapefile and it worked fine. Edited: add some print statements? Here is a link to someone with the same issue
... View more
01-14-2021
10:51 AM
|
0
|
8
|
1800
|
POST
|
Looks like he might have used QTCreator or QT Designer to make the GUI part - can you access his computer and see if QT has a recent file that points to a .UI extention?
... View more
12-16-2020
05:51 AM
|
0
|
1
|
4566
|
POST
|
Have you got any code? I'm a newbie, but my first thought is that you would generate and store your random cursor row number in a variable. Now I thought that SearchCursor took a parameter that said which rows it needed to start with. The SC goes until the end, at which point, I believe you would have to re-create the cursor object in order to start at the beginning of the table and run to the row you specified or call the cursor's reset() method. I do believe this puts it back at the first row, but I'm guessing you would have to build in logic if your randomly generated row ended up being the first row? Another thought where perhaps you need to figure out your row, then extract all the rows you want to iterate through into their own list, and then run the search cursor from there?
... View more
12-14-2020
01:17 PM
|
0
|
0
|
1590
|
Title | Kudos | Posted |
---|---|---|
2 | 12-03-2020 11:57 AM | |
1 | 04-19-2023 12:42 PM | |
1 | 12-15-2022 09:06 AM | |
4 | 07-24-2023 06:24 AM | |
1 | 07-18-2023 01:42 PM |
Online Status |
Offline
|
Date Last Visited |
03-11-2024
11:10 AM
|