POST
|
Hello I am new to ArcGIS Portal and am trying to improve the performance of my webmap by caching my map services. My map includes hierarchical geographic boundaries that are viewed at extents ranging from many states down to a block level. The data includes states in New England as well as Puerto Rico. My main question is, when I include Puerto Rico in the map service when caching, does the cache make tiles for all of the land area between New England and Puerto Rico? If this is so, I would potentially make two services and split the data between them. My second question is about cache layers in general. My layers are set to turn on at appropriate scales for viewing, however, my map service includes layers that turn on for viewing areas that encompass multiple states each all the way down to layers where a feature may only encompass only 1 city block (over 600k in my map region). In a scenario where I create a cache for a layer which drew from the highest to lowest extent and across the whole region, because the tiles are essentially going to be drawn at all extents and for the whole region, it would not make a difference in the cache storage size if extra data was added that drew at the smaller scales (such as adding a block layer) since the tiles would have been generated regardless of adding these finer detail layers. Am I correct, or does the tile cache increase in size if the amount of data in each tile is increased? or is a tile always the same size regardless if there is no data (somehwere within an unfilled polygon) or contains many small features? I hope this makes sense.
... View more
08-10-2020
08:48 AM
|
0
|
0
|
216
|
POST
|
Thank you , this led me on the right path. I solved me issue by using a standard update cursor and not the data access type, and adding the field values to my dictionary by using the row.getValue('fieldname') within the row iteration and then calling my function in the setValue method.
... View more
11-14-2019
07:05 AM
|
0
|
1
|
952
|
POST
|
I am using ArcMap Desktop 10.5. Im trying to use field calculator to return a max value between other fields in the feature based upon a condition. I am not new to python, but I am new to implementing it in Arc. Using field calculator, it seems as though you can reference that row's value for a particular field by delimiting the field names with '!'. What I would like to do is take the numeric amounts for how many people speak a given language per tract feature and then return a string of the most common language name as long as the language is spoken by at least 5% of the population. An example of a python code that I assumed would work is first having a dictionary with keys as the text string for the language name and dictionary values by referring to that field name with '!'. Then putting this dictionary and a function in the 'Pre-logic Script Code' and then in the field calculator passing in this dictionary into the function to return a string. Pre-logic Script Code: Totals = {'Total':!Estimate__Total_!, 'Total only English':!Estimate__Total____Speak_only_English!, 'Spanish' : !Estimate__Total____Spanish____Speak_English_less_than_!, 'French': !Estimate__Total____French__Haitian__or_Cajun____Speak_English_le!, 'German' : !Estimate__Total____German_or_other_West_Germanic_languages____S1!, 'Russian': !Estimate__Total____Russian__Polish__or_other_Slavic_languages__1!, 'Indo European': !Estimate__Total____Other_Indo_European_languages____Speak_Engli1!, 'Korean': !Estimate__Total____Korean____Speak_English_less_than_!, 'Chinese': !Estimate__Total____Chinese__incl__Mandarin__Cantonese_____Speak1!, 'Vietnamese': !Estimate__Total____Vietnamese____Speak_English_less_than_!, 'Tagalog': !Estimate__Total____Tagalog__incl__Filipino_____Speak_English_les!, 'Asian': !Estimate__Total____Other_Asian_and_Pacific_Island_languages____1!, 'Arabic': !Estimate__Total____Arabic____Speak_English_less_than_!, 'Other': !Estimate__Total____Other_and_unspecified_languages____Speak_Eng1!} def mostCommon (dic) most = 0 lang = '' tot = dic['Total'] for k,v in dic.items(): if (v > most) and (v >= (tot *.05)): most = v lang = k if lang == '': return 'None' else: return lang and then in my field calculator box below I simply pass the dictionary into the function mostCommon(Totals) However, this gives me a parameter error. Is there any other way for this to be done in field calculator? I have also researched using UpdateCursor, but im not quite sure how I can reference a value in a particular field for the row and add it to a dictionary as I have above. thank you for your help
... View more
11-13-2019
09:24 AM
|
0
|
3
|
1187
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|