Vairāk

Aprēķināt laukus ar nulles vērtībām, izmantojot arcpy.da.UpdateCursor of ArcGIS for Desktop?


Kā aprēķināt laukus ar nulles vērtībām? Man ir vairāki lauki, kuriem var būt nulles vērtības, kuras netiek aprēķinātas trešajā laukā.

importēt arcpy ar arcpy.da.UpdateCursor (r "… gdb  test.gdb  test", ["A", "B", "C"]) kā kursoru: rindai kursorā: rinda [2] = rinda [ 0] + rinda [1] cursor.updateRow (rinda)

Šī aprēķina rezultāts ir šāda kļūda:

Traceback (pēdējais pēdējais zvans): fails "C:  Users  Desktop  updatecursor2.py", 4. rinda,  rinda [2] = rinda [0] + rinda [1] TypeError: neatbalstīts operanda veids +: 'NoneType' un 'float'

Skripta rezultāts ir tāds pats, kad mēģinu izmantot lauka kalkulatoru:

Kā izmantot datu atjaunināšanas kursoru vai lauku kalkulatoru, lai aprēķinātu vērtību vērtību jaunā laukā, ja jums ir nulles vērtības?

Darbvirsmai izmantoju ArcGIS 10.1 SP1.


Tālāk ir norādīts, kā nullus aizstāt ar nullēm.

importēt arcpy ar arcpy.da.UpdateCursor (r "… gdb  test.gdb  test", ["A", "B", "C"]) kā kursoru: kursora rindai: a_value = rinda [0], ja rinda [0] cits 0 # Izmantojiet 0, ja "A" ir kļūdains )

Piezīme: tas faktiski neatjaunina tabulas nulles vērtības; aprēķinu laikā tas tos vienkārši aizstāj ar nullēm. Ja vēlaties neatgriezeniski aizstāt nulles ar nulli, priekšpēdējo rindu varat mainīt uzrinda = [a_value, b_value, a_value + b_value].


Sāksim ar lauka kalkulatoru. tam vajadzētu izskatīties kā šiem 2 ekrānuzņēmumiem.

Kad es aprēķinu laukus atjaunināšanas kursorā (update_cursor), tas izskatās vairāk šādi. Šeit man ir SearchCursor (rinda ir iestatīta uz searchCursor.next) un atjaunināšanas kursors (2. rinda ir iestatīta uz update_cursor.next). Tas faktiski ir nedaudz atšķirīgs, jo atjauninājumiem un atlasei es izmantoju vērtības citā slānī.

kamēr rinda: kamēr rinda2: grpnumValue = rinda2.getValue ("A"), ja (grpnumValue> 0): row.setValue ("MAILING_GROUP", grpnumValue) row2 = searchCursor.next rinda = update_cursor.next ()

Slānis (funkciju pakalpojums)

Slāņu resurss apzīmē atsevišķu funkciju slāni vai nesaturālu tabulu līdzekļu pakalpojumā. Funkciju slānis ir tabula vai skats ar vismaz vienu telpisko kolonnu.

Tabulām tā sniedz pamatinformāciju par tabulu, piemēram, tās ID, nosaukumu, laukus, veidus un veidnes. Objektu slāņiem papildus tabulas informācijai tiek sniegta tāda informācija kā ģeometrijas veids, min un max skalas un telpiskā atsauce. Katrs veids ietver informāciju par tipu, piemēram, tipa ID, nosaukumu un definīcijas izteiksmi. Veidi ietver arī noklusējuma simbolu un funkciju veidņu sarakstu. Katrā līdzekļa veidnē ir veidnes nosaukums, apraksts un prototipisks līdzeklis.

Īpašuma iespējas atgriež vaicājuma, izveides, dzēšanas, atjaunināšanas, rediģēšanas, sinhronizācijas, augšupielādes un izvilkšanas iespējas. Rediģēšanas iespējas tiks iekļautas, ja līdzekļa pakalpojumam ir iespējota izveide, dzēšana vai atjaunināšana.

Rekvizīts geometryType atgriež slāņa ģeometrijas veidu. Tiek atbalstīti pieci ģeometrijas veidi: punkts (esriGeometryPoint), daudzpunktu (esriGeometryMultipoint), polilīnija (esriGeometryPolyline), daudzstūris (esriGeometryPolygon) un aploksne (esriGeometryEnvelope). Lai uzzinātu vairāk par šiem atbalstītajiem ģeometrijas veidiem, skatiet sadaļu Ģeometrijas objekti.

Īpašums maxRecordCount atgriež maksimālo ierakstu skaitu, kas tiks atgriezts uzreiz vaicājumam.

Slāņu resurss atgriež saistītās tabulas ID, kardinalitāti, lomu, atslēgas lauku un salikto visām attiecībām. Turklāt rekvizīti relationshiptableId un keyFieldInRelationshipTable tiek atgriezti tikai attiecinātajām attiecībām.

Efektīvās MinScale un efektīvāsMaxScale īpašības atspoguļo efektīvās minimālās un maksimālās skalas, pie kurām slānis ir redzams. Efektīvā minimālā un maksimālā skala tiek aprēķināta, pamatojoties uz pašreizējā slāņa un tā priekšteču minScale un maxScale vērtībām.

Slāņa resurss atbalsta ievades parametru returnUpdates, kas pieņem Būla vērtību. Nododiet šo parametru, lai izgūtu slāņa atjaunināto timeExtent.

Lauka rekvizīts nulleble norāda, vai lauks var pieņemt nulles vērtības.

Ja slānim ir pielikumi, tā rekvizīts hasAttachments būs patiess.

Ja slānim objectIdField nav garuma rekvizīta vai garuma rekvizīts ir iestatīts uz 4, tad objektaIdField ir 32 bitu. Ja objektaIdField garums ir 8, objektaIdField ir 64 bitu.

Rekvizīts geometryField apraksta paša ģeometrijas lauka iestatījumus un ietver nosaukumu, nullējamus un rediģējamus apakšīpašumus. Citi apakšīpašumi, piemēram, modelName, var tikt vai netiek sniegti. Iespējams ģeometrijas lauks, kas nav rediģējams. Funkcijām slāņos, kur rediģējams = nepatiess, ģeometrijas vērtības tiek uzturētas sistēmā un tās nevar rediģēt tieši pat datu īpašnieks vai administrators (piemēram, komunālo tīklu netīrās zonas slāņi). Tas atšķiras no rekvizīta allowGeometryUpdates, kas ļauj pakalpojuma īpašniekam vai administratoram kontrolēt, vai lietotāji, kas nav īpašnieki/neadministratori, var veikt ģeometrijas atjauninājumus. Īpašnieki vai administratori var atjaunināt ģeometriju pat tad, ja allowGeometryUpdates ir nepatiess, ja vien ģeometrijas lauku var rediģēt.

AtbalstsSQLExpression rekvizīts ir patiess, ja slānis atbalsta iespēju izmantot SQL izteiksmes outStatistics, groupBy vai orderBy. Izmantojot objektu slānī SQL izteiksmes, jūs varat konfigurēt savu parametru outStatistics šādi: [<"statisticType": "AVG", "onStatisticField": "str_angle*100", "outStatisticFieldName": "avg">]. AtbalstsOutFieldSqlExpression ir patiess, ja slānis atbalsta SQL izteiksmes outFields. SQL izteiksmju izmantošanas piemērs outFields var būt aizstājvārdi: outFields = County kā CountyAlias, Elevation as ElevationAlias.

supportOutFieldSqlExpression pašlaik tiek atbalstīts tikai ArcGIS Online un Enterprise mitināto funkciju pakalpojumos relāciju datu krātuvē, sākot no 10.9. "

Rekvizīts SupportsLOD norāda, vai līdzekļa pakalpojumu slānim var ieslēgt iespēju iesniegt vaicājumus. Lod vaicājumi ir ieslēgti, un tos var vaicāt, ja slānī ir īpašums lodInfos.

Jaunums 10.9

Šie vienumi ir jauni vai atjaunināti 10.9.

  • Atbildes kešatmiņu var iespējot mitināto līdzekļu pakalpojumu slāņos, kas darbojas relāciju datu krātuvē. Atbildes kešatmiņa uzlabo veiktspēju un mērogojamību noteikta veida vaicājumiem. Lai iespējotu atbildes kešatmiņu, vispirms ir jākonfigurē objektu krātuve. Detalizētu informāciju par atbildes kešatmiņu un to, kā to iespējot, skatiet operācijā updateDefinition. Ja ir iespējota atbildes kešatmiņa, tiek iestatīts šāds slāņa rekvizīts:
    • "supportQueryWithCacheHint": true: norāda, ka slāņu vaicājumi atbalsta parametru cacheHint.
    • "editInfo": ("lastEditDate": & ltdateValue & gt): norāda datumu, kad slānī pēdējo reizi tika veiktas izmaiņas. Piemēram, "editInfo": ("lastEditDate": 1609896851105). & LtdateValue & gt ir laikmeta datums milisekundēs.

    Tiešsaistes mitināto funkciju pakalpojumu slāņiem ir arī "supportQueryWithCacheHint": true un tajos ietilpst "editInfo": ("lastEditDate": & ltdate value & gt)

    Sākot no 10.9, kopiju izsekošana tiek automātiski iespējota, ja mitinātajos funkciju pakalpojumos ir iespējota sinhronizācija.

      Pakalpojuma datuma lauku laika joslu var definēt kā nezināmu. Laika joslas iestatīšana kā nezināma nozīmē, ka datuma vērtības tiks atdotas no datubāzes, kā ir, nevis kā datuma vērtības UTC. Funkciju pakalpojumus, kas netiek mitināti, var iestatīt, lai izmantotu nezināmu laika joslu, izmantojot ArcGIS Server Manager. Ja laika joslas iestatīsit uz nezināmu, datumaInUnknownTimezone slāņa rekvizīts tiks iestatīts kā patiess. Pašlaik mitinātie funkciju pakalpojumi neatbalsta šo iestatījumu. Nezināmas laika joslas neattiecas uz redaktora izsekošanas datuma laukiem. Redaktora izsekošanas datuma lauki ir UTC pat tad, ja pakalpojuma laiks ir iestatīts uz nezināmu.

    Lielākā daļa klientu, kas iepriekš tika izlaisti ArcGIS Enterprise 10.9, nevarēs strādāt ar funkciju pakalpojumiem, kuriem ir nezināms laika joslas iestatījums. ArcGIS Pro 2.7 vai jaunāka versija var strādāt ar šiem līdzekļu pakalpojumiem. Lai klienti varētu veikt vaicājumus, rediģēt vai veikt citas darbības, šīm darbībām parametram timeReferenceUnknownClient jābūt iestatītam uz true. TimeReferenceUnknownClient = true iestatīšana norāda, ka klients spēj strādāt ar nezināmām datuma vērtībām, kas nav UTC. Slāņu darbības, kas ietver parametru timeReferenceUnknownClient, ietver: query, applyEdits, addFeatures, updateFeatures, queryRelatedRecords, aprēķina un līdzekļu resursus. Pakalpojuma darbības, kas ietver parametru timeReferenceUnknownClient, ietver: query, applyEdits, createReplica, synchronizeReplica un extractChanges.

    Jaunums 10.8.1

    Šie vienumi ir jauni vai atjaunināti 10.8.1.

    • Mitināto līdzekļu pakalpojumi relāciju datu krātuvē atbalsta slāņa konfigurēšanu, lai atļautu LOD vaicājumus, ja rekvizīts supportLOD sadaļā AdvancedQueryCapbility ir patiess. Lai atļautu LOD vaicājumus, ir jāizpilda administratora darbība updateDefinition, lai iestatītu rekvizītu lodInfos, kas apraksta tvertnes.
    • Slāņu resurss tagad atgriež rekvizītu isDataReplicaTracked. Ja šis rekvizīts ir patiess, tas norāda, ka līdzekļu pakalpojumu slānim ir iespējota repliku izsekošana. Šis rekvizīts ir nepieciešams sinhronizēšanai ar nosaukto filiāles versiju. Papildinformāciju skatiet rakstā Iespējot kopiju izsekošanu.
    • Slāņu vaicājuma darbība atbalsta procentili kā statisticType, ja izmantojat outStatistics funkciju pakalpojumiem, kas publicēti no ArcGIS Pro, kas atsaucas uz uzņēmuma ģeodatubāzes datiem. Slāniem, kas atbalsta procentīles, rekvizīta AdvancedQueryCapability rekvizītiPercentileStatistics būs patiesi.
    • Daudzpakāpju datus var vaicāt, izmantojot ārējus tekstus un f kā pbf funkciju pakalpojumiem, kas publicēti no ArcGIS Pro.
    • Mitinātie un nerīkotie funkciju pakalpojumi, kas darbojas apvienotā serverī, ietver īpašumu serviceItemId. Tas apraksta saistītā funkciju slāņa vienuma ID mājas lietotnē. ArcGIS Enterprise mitinātie funkciju pakalpojumi ir atbalstījuši šo īpašumu kopš 10.7.
    • Mitinātie funkciju pakalpojumi relāciju un telpiski laika datu krātuvēs ArcGIS Enterprise atbalsta rediģēšanas režīmu kvantēšanai. Tas ir norādīts ar slāņa rekvizītiem, kas atbalsta vērtību QuantizationEditMode kā patiesu
    • Pirms 10.7.1., Publicējot datus, kas bija iespējoti arhivēšanai, tradicionālai versijai, filiāles versijai vai piedalījās kontroliera datu kopā (ģeometriskais tīkls, topoloģija, komunālais tīkls utt.), Aprēķināšanas darbība netika atbalstīta. Sākot ar 10.7.1., Funkciju pakalpojumi, kas atļauj atjaunināšanu, tiek atbalstīti ar visu iepriekš minēto aprēķināšanas darbību.

    Slāniem, kuriem ir hasAttachments un atbalstaQueryAttachments kā patiesi, 10.8.1.

    Šīs funkcijas attiecas gan uz mitinātiem, gan ne mitinātiem funkciju pakalpojumiem, kas publicēti no ArcGIS Pro.

    • Objekts attachmentProperties ir iekļauts ArcGIS Enterprise līdzekļu pakalpojumos. Šī jau bija ArcGIS Online mitināto funkciju pakalpojumu iezīme.
    • Jauns lauka nosaukuma rekvizīts, ko var izmantot ar parametra queryAttachments pielikumiemDefinitionExpression, lai ierobežotu rezultātus, pamatojoties uz pielikumu tabulas vērtībām.
    • Uzņēmuma mitinātie pakalpojumu pakalpojumi atbalsta gan atslēgvārdus, gan exifInfo (isEnabled as true). Šīs slejas tiek pievienotas automātiski, publicējot jaunus funkciju pakalpojumus ar pielikumiem vai iespējojot pielikumus esošā slānī. Jauninot no iepriekšējā laidiena, atslēgvārdi un exifInfo slejas nebūs pieejamas. Tomēr tos var pievienot, izmantojot operētājsistēmu updateDefinition. ArcGIS Online mitinātie funkciju pakalpojumi jau atbalsta pielikumu slejas.
    • Visiem līdzekļu pakalpojumu slāņiem, kas atbalsta pielikumus, ir pievienoti jauni pielikumu rekvizīti - id un globalid -, ieskaitot ArcGIS Online mitinātos funkciju pakalpojumus.
    • Jauns attachmentFields objekts uzskaita informāciju par pielikumu laukiem, piemēram, veidu un garumu. Rekvizītu attachmentFields name var pielāgot rekvizītam attachmentProperties fieldName. Šo informāciju var izmantot, lai pareizi formatētu vaicājumus un izprastu lauka garuma atbildes ierobežojumus. AttachmentFields tiks uzskaitīti tikai tie lauki, kas rekvizītiem atbilst parametram isEnabled.
    • Lauku nosaukumi tagad tiek atgriezti papildus lauku rekvizītiem vaicājuma Pielikumi darbības atbildē. Ja lauka nosaukums un rekvizīta nosaukums atbilst, ieskaitot gadījumus, atbildē tiek atgriezta tikai viena vērtība, kas atspoguļo gan lauku, gan īpašumu. Lietojot to lietojumprogrammā, vislabāk ir izmantot lauka nosaukumu, nevis īpašumu.

    Funkciju pakalpojumi tagad atbalsta topoloģijas slāņus, kas ieviesti 10.8.1. Topoloģijas slāņi ir salikti slāņi, kas atsaucas uz apakšslāņiem un kuriem nav nekādu iespēju. Apakšslāņa atsauces apraksta slāņa kļūdu pazīmes un netīrās vietas. Tie ir slāņi, kas uzskaitīti arī topoloģijas slāņa objektā systemLayers. Sistēmas slāņi vienmēr ir tikai lasāmi (t.i., tiem nekad nav rediģēšanas iespēju), un tie ir topoloģijas slāņa apakšslāņi. Topoloģijas sistēmu slāņa resursi ietver arī atsauci uz topoloģijas slāni šādi.

    Klientiem, piemēram, ArcGIS Pro 2.6, topoloģijas slāņi tiek izmantoti kopā ar validācijas pakalpojumu, lai atbalstītu topoloģijas validāciju un kļūdu funkciju labošanu.

    Jaunums 10.8

    Šis ir jauns 10.8.

    • Līdzekļu slāņa resurss tagad atgriež rekvizītu supportDatumTransformation. Šis rekvizīts ir patiess, ja līdzekļu servisa slānis atbalsta nulles punktu transformāciju pievienošanu. Ja tā ir taisnība, slāņa līmeņa vaicājums, ar vaicājumu saistītais un slāņa līmeņa lietojums Rediģēt ļaus atskaites punktu transformācijas. Turklāt slāņa rekvizīts advancedQueryCapbility atbalstaQueryWithDatumTransformation būs patiess, ja slāņa līmeņa vaicājuma darbība atbalsta parametru datumTransformation.
    • Slāņa rekvizīts standardMaxRecordCountNoGeometry nosaka maksimālo ierakstu skaitu, veicot vaicājumu slānim ar returnGeometry kā nepatiesu un resultType kā standarta.
    • SupportFieldDescriptionProperty slāņa rekvizīts ir patiess, ja tiek atbalstīts lauka apraksta rekvizīts. Lauka apraksta rekvizīts ļauj slāņos glabāt vērtību veidus un aprakstus ar laukiem. Mitināto funkciju slāņu darbību “Atjaunināšanas definīcija” var izmantot, lai pievienotu vai iestatītu lauka aprakstu. Papildinformāciju par lauku aprakstu un lauku veidu vērtību iestatīšanu, izmantojot mājas lietotnes lietotāja saskarni, skatiet rakstā Atribūtu lauku apraksts.
    • Sistēmā uzturētās apgabala un garuma kolonnas ar nosaukumu SHAPE_Area un SHAPE_Length tagad tiek atbalstītas uzņēmumā izvietotajos funkciju pakalpojumos (relāciju datu krātuve). Lai aprakstītu laukus SHAPE_Area un SHAPE_Length, ir pievienotas ģeometrijaProperties shapeAreaFieldName, shapeLengthFieldName un vienības. Šo lauku nosaukumi ir rezervēti. Ja tiek publicēti dati, kuriem jau ir lauki ar šiem nosaukumiem, sākotnējos laukus var nomest vai pārdēvēt.

    Lauku nosaukumu reģistrs var atšķirties atkarībā no pakalpojuma.

    Jaunums 10.7.1

    10.7.1. Ir jauns:

    • Jauni slāņa rekvizīti, kas parādīti objekta pakalpojumu slānī:
      • Funkciju slānis tagad atbalsta vaicājuma pielikumu darbību, ja atbalstaQueryAttachments vērtība ir patiesa un hasAttachments ir patiesa slānī.
        • Pielikuma URL tagad var atgriezt vaicājuma pielikumu atbildē, ja ir atbalstīta quQQeryeryAttachmentsWithReturnUrl un slānī ir atbalstītsQueryAttachments.

        Jaunums 10.7

        • Jauni slāņa rekvizīti, kas parādīti objekta pakalpojumu slānī:
          • Redaktora izsekošanas laukos tagad var būt rekvizīts dateFieldsTimeReference rediģēšanas laukā. Ja dateFieldsTimeReference neparādās rediģēšanas laukā, var pieņemt, ka laika josla ir tāda pati kā slāņa laika josla. Slāņa laika josla būs UTC, ja vien slāņa rekvizīts dateFieldsTimeReference nenorāda citādi.
          • supportTopFeaturesQuery ir patiesa, ja slānis atbalsta queryTopFeatures darbību.
          • Īpašums sqlParserVersion tiek pievienots mitināto līdzekļu pakalpojumu slāņiem, lai norādītu atbalstīto SQL 92 sintaksi standartizētiem vaicājumiem. Vērtībās ietilpst “PG_10.6.1” attiecībā uz relāciju datu krātuvē esošiem mitinātiem funkciju pakalpojumiem un “ES_10.6.1” mitinātiem funkciju pakalpojumiem, kas balstīti uz telpisko laika ArcGIS datu krātuvi. 10.7 laidienam nav pievienotas jaunas vaicājumu darbības, kas nozīmē, ka visas vaicājuma darbības, sākot ar 10.7 laidienu, ietilpst sqlParserVersion 10.6.1. Lielākā daļa SQL 92 sintakses standartizētiem vaicājumiem tiek atbalstīti, izmantojot relāciju datu krātuves mitinātos funkciju pakalpojumus. Mitinātie funkciju pakalpojumi telpiskajā ArcGIS datu krātuvēs atbalsta apakškopu - lai iegūtu papildinformāciju, skatiet slāņa vaicājuma darbību, kur palīdz klauzula.
          • isUpdatableView ir taisnība mitinātā līdzekļa pakalpojuma skata slānī, ja skata slāņos ir atļauti pakalpojuma definīcijas atjauninājumi (piemēram, iespējošanas un atspējošanas iespējas).
          • propertyQueryFormats rekvizīts apraksta atbalstītos atbildes veidus, kad tiek vaicāts objekta pakalpojumu slānis. Vērtības ietver json, html, un 10.7. Var ietvert arī pbf (protokola buferis), kompaktu ģeogrāfisko datu bināro kodējumu.
          • isDataBranchVersioned ir patiess, ja slānis atsaucas uz objektu klasi vai tabulu uzņēmuma ģeodatubāzē, kurai ir filiāles versija. Skatiet filiāļu versijas uzņēmuma ģeodatubāzēs.
          • "SupportOrderByOnlyOnLayerFields": true norāda, ka parametrs orderByFields slāņa vaicājuma darbībā aizņem tikai laukus, kas atrodas slāņu lauku sarakstā. Vaicājuma darbības laikā ģenerētos laukus (piemēram, outStatisticFieldName no outStatistics) nevar izmantot. Noklusējuma vērtība ir nepatiesa.
          • Rekvizīti shapeAreaFieldName, shapeLengthFieldName un vienības ir pievienoti, lai aprakstītu laukus Shape__Area un Shape__Length.

          Jaunums 10.6.1

          • Jauni slāņa rekvizīti, kas parādīti objekta pakalpojumu slānī:
            • supportHavingClause ir taisnība, ja slānis atbalsta vaicājuma darbības ar parametru, kam ir klauzula.
            • supportCountDistinct ir taisnība, ja slānis atbalsta skaitļa vaicājumu ar atšķirīgām vērtībām, izmantojot returnDistinctValues ​​un returnCountOnly.
            • supportCoordinatesQuantization ir taisnība, ja slānis atbalsta koordinātu kvantēšanu.
            • AtbalstsReturningGeometryCentroid ir patiess, ja slānis atbalsta daudzstūra objekta centra ģeometrijas atgriešanu. Bieži taisnība, ja atbalsta Koordinātas Kvantēšana ir patiesa.
            • supportQueryWithResultType ir patiess, ja slānis atbalsta vaicājuma darbības, izmantojot rezultātuType.
            • GeometryField rekvizīts definē ģeometrijas lauka rekvizītus objekta slānī.
            • Rekvizīts standardMaxRecordCount nosaka maksimālo funkciju skaitu, ko vaicājums atgriezīs, ja vaicājumā tiks izmantots rezultātsType = standard.
            • Rekvizīts tileMaxRecordCount nosaka maksimālo funkciju skaitu, ko vaicājums atgriezīs, ja vaicājumā tiks izmantota rezultātsType = flīze.
            • Rekvizīts maxRecordCountFactor tiek izmantots, lai mainītu vaicājumu standartaMaxRecordCount un tileMaxRecordCount vērtības.
            • hasMetadata norāda, vai slānī ir metadati.

            Jaunums 10.6

            • Komunālo tīklu slāņi - jauns "tipa" slānis: "Komunālo tīklu slānis" tiek izveidots, kad komunālie tīkli tiek publicēti kā funkciju pakalpojumi. Šos slāņus var lietot tieši ArcGIS Pro, sākot ar versiju 2.1, bet vēl nevar izmantot citiem ArcGIS klientiem 10.6 izlaišanas laikā. Lietderības tīkla slāņi ir salikti slāņi, jo tie atsaucas uz apakšslāņiem un tiem nav iespēju. Tie arī apraksta systemLayers, kurus izmanto, lai atbalstītu diagrammas un citu inženiertīklu specifisku uzvedību. Ir iekļauta arī informācija par atbalstīto asociāciju TypeValues. Skatiet JSON atbildes piemēru zemāk.
            • Anotācijas slāņi - Jauns “tipa” slānis: “Anotācijas slānis” tiek izveidots, publicējot anotāciju slāņus ar funkciju pakalpojumiem no ArcGIS Pro, sākot ar versiju 2.1. Šos slāņus var lietot tieši ArcGIS Pro 2.1 vai jaunākā versijā, bet vēl nevar izmantot citiem ArcGIS klientiem 10.6 izlaišanas laikā. Anotāciju slāņi ir līdzīgi citiem slāņiem, jo ​​tie atbalsta vaicājumu un rediģēšanas darbības. Tomēr anotāciju slāņi neietver DrawInfo, veidus vai veidnes. Anotāciju slāņi arī atbalsta vaicāšanu un kolonnas Element rediģēšanu, izmantojot “type”: “esriFieldTypeBlob”. No 10.6 izlaišanas brīža īpašumā ar anotācijām var strādāt tikai ArcGIS Pro 2.1.
            • Tālāk ir norādīti jauni rekvizīti, kas tiek parādīti līdzekļu pakalpojumu slānī:
              • modelName ir īpašums, kas tiek atklāts gan laukos, gan slāņos. ModelName nodrošina aizmugures ģeodatubāzes tabulas, funkciju klases un lauki.
              • isDataArchived ir taisnība, ja slānis ir iespējots arhīvā, kas ļauj tam atbalstīt vaicājumu ar historicalMoment.
              • isCoGoEnabled ir patiess, ja slānim ir iespējota koordinātu ģeometrija.
              • parentLayer atsaucas uz Utility Network slāni no Utility Network slāņa apakšslāņiem. Slāniem, kas nav komunālā tīkla slāņa apakšslāņi, vērtība ir nulle.
              • Lauku defaultValue rekvizīts apraksta ģeodatu bāzes laukam iestatīto noklusējuma vērtību.
              • Domēna apraksta rekvizīts ir ģeodatubāzē domēnam iestatītais apraksts. Piemēram, ("domains": <"description": "Augstuma diapazoni">).
              • Rekvizīts sourceSpatialReference apraksta ģeodatubāzes objektu klases koordinātu sistēmu.
              • Gan spatialReference, gan sourceSpatialReference informācija satur jaunas īpašības (VCS) vertikālajai koordinātu sistēmai (ja tā ir definēta), pielaidi un izšķirtspēju. Pielaides rekvizīti ir skaidri uzskaitīti, savukārt citi rekvizīti tiek sniegti, lai klients varētu aprēķināt izšķirtspēju. Skatiet JSON atbildes piemēru zemāk.
              • heightModelInfo ir slāņa rekvizīts, kas tiek atklāts, publicējot karti ar noteiktu vertikālo koordinātu sistēmu.
              • sourceHeightModelInfo ir slāņa rekvizīts, kas raksturo funkciju klašu vertikālo koordinātu sistēmu, kad tā ir definēta.

              Veicot vaicājumu, z vērtības tiek atgrieztas vertikālajā koordinātu sistēmā sourceSpatialReference neatkarīgi no tā, kas norādīts kā izejas telpiskā atsauce. Paredzams, ka rediģēšanas laikā avota vertikālo koordinātu sistēmā sourceSpatialReference tiek nodrošinātas arī z vērtības.

              Iepriekš uzskaitītās funkcijas ir pieejamas pakalpojumiem bez mitināšanas, kas publicēti no ArcGIS Pro 2.1 vai jaunākas versijas, bet ne obligāti pakalpojumiem, kas publicēti no ArcMap vai citiem procesiem. Pakalpojumiem, kas publicēti no ArcGIS Pro 2.1, ir šāds slānis un pakalpojuma rekvizīts: "cimVersion": "2.1.0"

              Mitinātie funkciju pakalpojumi atklāj rekvizītu maxResultWindow telpiskos un laika slāņos. Tas pirmo reizi tika ieviests 10.5.1.

              • Šis ir maksimālais rindu skaits, ko var atgriezt pieprasījumam telpiskā un laika slānī.
              • Tas ir iestatījums tieši no telpiskā un laika datu avota (elastīga meklēšana).
              • Ja maxRecordCount (standarta, flīzes vai nav neviena) ir lielāks par maxResultWindow, vaicājumā tiks atgriezts tikai maxResultWindow rindu skaits.
              • Ja maxRecordCount (standarta, flīzes vai nav neviena) ir mazāks par maxResultWindow, vaicājumā jūs saņemsiet līdz maxRecordCount rindām, bet jūs varat lapot tikai līdz maxResultWindow.
              • Vērtību varat pielāgot, izmantojot mitināšanas līdzekļa pakalpojuma administratora slāņa resursa darbību Atjaunināt definīciju. Tas pielāgos slāņa rekvizītu maxResultWindow aizmugurē un telpisko un laika datu avotu.
              • Labāko praksi un ieteikumus, kas saistīti ar iestatījumu max_result_window, skatiet elastīgajā meklēšanas dokumentācijā.

              Jaunums 10.5

              10.5 ir jauns:

              • returnDomainNames ir slāņa resursa parametrs, kurā domēna informācija ietver tikai domēna nosaukumu. Domēna vārdus var saskaņot ar pilnu domēna informāciju, ko atgriež operācija queryDomains. Šī pieeja ir efektīvāks veids, kā strādāt ar domēniem, jo ​​tai nepieciešama pilna domēna informācijas atgriešana tikai vienu reizi, nevis ar katru slāni.
              • subtypeField ir slāņa rekvizīts, kuram ir iestatīts apakštipa lauka nosaukums. Ja slānim nav apakštipu, tas ir iestatīts uz tukšu virkni ("subtypeField": "").
              • defaultSubtypeCode slāņa rekvizītu, kuram ir iestatīts noklusējuma apakštipa kods, ja slānim ir apakštipi.
              • apakštipi ir masīvs, kas apraksta slāņa apakštipus un vienmēr tiek iekļauts, ja slānim ir apakštipi. Tipu masīvā esošie domēni atbilst apakštipa masīva domēniem slāņiem, kuriem ir unikāls vērtību atveidotājs, pamatojoties uz apakštipa kolonnu.
              • MergePolicy un splitPolicy ir iekļauti pilnā domēna informācijā.
              • Veidnēs tiks iekļauts sīktēls, kad funkciju pakalpojuma slānis tiek publicēts no slāņa ar vārdnīcas renderētāju. Rādot veidņu atlasītāju, klienti var izmantot 64 pamata attēlu sīktēlā. Sīktēls nav obligāts, un tas netiks sniegts citu līdzekļa pakalpojumu slāņu veidnēs. Skatiet JSON atbildes piemēru zemāk.
              • Ja allowTrueCurvesUpdates ir patiess un onlyAllowTrueCurveUpdatesByTrueCurveClients ir patiess, funkcijas ar patiesām līknēm var atjaunināt ar īstām līknēm spējīgiem klientiem (piemēram, ArcGIS Pro). Veicot labojumus, patiesās līknes klientam ir jāiestata parametrs trueCurveClient uz patiess.

              Ja allowTrueCurvesUpdates ir patiesa un onlyAllowTrueCurveUpdatesByTrueCurveClients ir nepatiesa, līdzekļus ar patiesām līknēm var atjaunināt jebkurš klients. Tas ietver gadījumus, kad klients nodrošina sabiezinātu līdzekli, lai atjauninātu patiesās līknes līdzekli.

              • supportQueryWithHistoricMoment norāda, vai slānī var veikt vēsturisko momentu vaicājumus. Slānim jābūt iespējotam arhivēšanai, lai atbalstītu šāda veida vaicājumus.
              • startArchivingMoment norāda laiku, kad slānī tika iespējota arhivēšana.

              Izmaiņas pirms 10.5

              Tālāk norādītajos rekvizītos ir aprakstītas funkcijas, kas ir pievienotas funkciju pakalpojumam, izmantojot laidienus pirms 10.5. Ja īpašums neeksistē, tas ir līdzvērtīgs tam, ja vērtība ir nepatiesa vai nav iestatīta.


              Mēģinot aprēķināt vērtības vairākos laukos, tiek parādīts kļūdas ziņojums "Nevar iegūt bloķēšanu".

              Tātad, esmu izveidojis skriptu, kas formas failam pievieno 6 laukus: Situs_city, Situs_St, Situs_Zip, Latitude, Longitude un GIS_Acres. Turklāt skripts ir iestatīts, lai aprēķinātu lauku Latitude, Longitude un GIS_Acres vērtības. Skripts darbosies labi, līdz būs izveidots GIS_acres lauks. Kad šis lauks ir izveidots, nākamais solis ir aprēķināt, un tad tiek parādīta kļūda 999999: nevar iegūt bloķēšanu. Dīvainais aspekts ir tas, ka skripts laiku pa laikam darbosies lieliski. katrā ziņā esmu apjukusi. Esmu diezgan jauns, lai izveidotu python skriptus. Ja kādam ir kāds ieteikums, tas būtu lieliski.

              # 1. solis - kopējiet jaunu [Taxlots_TEST_DeleteME.shp] no cove Department Shares Common Assessor ArcGIS uz E: STAGING (IKRIT)
              #set mainīgie

              in_data = "S: Common Assessor ArcGIS Taxlots_TEST_DeleteME.shp"
              Shapefile = "E: STAGING Taxlots_TEST_DeleteME.shp"
              #out_data = "E: STAGING Taxlots_TEST_DeleteME.shp"
              arcpy.Copy_management (in_data, Shapefile)
              izdrukāt "1. darbība pabeigta"

              #2. solis: pievienojiet Situs laukus
              # Izveidojiet jaunu lauku - Situs_City (virkne, 25)
              arcpy.AddField_management (Shapefile, "Situs_City", "TEXT", "", "", "25", "", "NULLABLE", "NON_REQUIRED", "")
              drukāt "2.a darbība: Situs_City pievienošana pabeigta."

              # Izveidojiet jaunu lauku - Situs_St (virkne, 2)
              arcpy.AddField_management (Shapefile, "Situs_St", "TEXT", "#", "#", "2", "#", "NULLABLE", "NON_REQUIRED", "#")
              izdrukāt "2.b darbība: Situs_St pievienošana pabeigta."

              # Izveidojiet jaunu lauku - Situs_Zip (virkne, 10)
              arcpy.AddField_management (Shapefile, "Situs_Zip", "TEXT", "#", "#", "10", "#", "NULLABLE", "NON_REQUIRED", "#")
              drukāt "2.c darbība: Situs_Zip pievienošana pabeigta."
              drukāt "2. darbība. Izveidojiet situs laukus."

              # 3. solis: izveidojiet un aprēķiniet platuma un garuma laukus.
              latLonRef = "Koordinātu sistēmas Ģeogrāfisko koordinātu sistēmas Pasaule WGS 1984.prj"
              Taxlot_shp = "E: STAGING Taxlots_TEST_DeleteME.shp"
              featureClassesList = Taxlot_shp.split ("")
              field_Type = "DOUBLE"
              field_precision_1 = 12
              field_scale_1 = 8

              for featureClass in featureClassesList:
              arcpy.AddMessage ("XY koordinātu aprēķināšana:" + featureClass)
              arcpy.AddField_management (featureClass, "Latitude", field_Type, field_precision_1, field_scale_1)
              arcpy.AddField_management (featureClass, "Garums", field_Type, field_precision_1, field_scale_1)
              rindas = arkveida.UpdateCursor (featureClass, "", latLonRef)
              rindai rindās:
              feat = row.getValue ("forma")
              cents = feat.centroid
              # Lai iegūtu daudzstūra laukumu: cents = feat.area
              rinda. Platums = cents. Y
              rinda.Garums = cents.X
              rows.updateRow (rinda)
              #arcpy.AddMessage (str (lat) + "," + str (lon))
              drukāt "3. darbība: pievienojiet latus un garus"

              # 4. solis: izveidojiet jaunu lauku - GIS_Acres (Double, 15, 3)
              Shapefile3 = "E: STAGING Taxlots_TEST_DeleteME.shp"
              #Iestatiet vietējos mainīgos
              field_Name = "GIS_Acres"
              field_Type = "DOUBLE"
              field_Precision = 15 #kopējais saglabāto ciparu skaits
              field_Scale = 4 #ciparu aiz komata

              arcpy.AddField_management (Shapefile3, field_Name, field_Type, field_Precision, field_Scale)
              arcpy.CalculateField_management (Shapefile3, field_Name, '[email protected]!', "PYTHON_9.3")
              drukāt "4. darbība: aprēķiniet pabeigto hektāru skaitu"

              print "Apsveicam! Jūs esat pabeidzis lauku pievienošanu Taxlots funkciju klasei."


              Saskaņojošās virknes ar lauka kalkulatoru un Python - darījumi ar NULLS

              autors: ChrisDonohue__G ISP

              Man ir daži adresācijas dati, kurus es vēlētos atjaunināt, un viens no uzdevumiem ir savienot jaunu pilnu ielas adreses lauku [ADDR1], apvienojot vairākus komponentu laukus. Es zinu, kā to izdarīt, izmantojot VBScript, taču sapratu, ka tas būtu labs piemērs, lai strādātu Python, jo es bieži neizmantoju Python un man ir daudz jāmācās. Mana programmēšanas pieredze ir FORTRAN un BASIC, un gados, kopš tie bija populāri hakeru un slīpsvītru pielāgošanas kodi AML/Avenue/VBA/VB.Net - tāpēc pieņemu, ka es maz zinu par Python.

              Kas ir vēlams (psuedo-loģika):

              ADDR1 = STRNUM + STRNUMSUF + STRPREDIR + STRNAME + STRTYPE + STRSUFDIR

              Es izmantoju ArcGIS 10.2.1, un šeit redzamie dati ir testa dati failu ģeodatubāzes funkciju klasē.

              Izpētot dažādus palīdzības rakstus, šķiet, ka Python .format metode in darbosies. Tomēr, palaižot to lauka kalkulatorā, rezultāts izskatās labi, izņemot to, ka “Nav” tiek apvienots kā teksts, ja sākotnējā lauka vērtība bija NULL (šī problēma nenāk klajā ar VBScript). Es gribētu, lai visas NULL vērtības vienkārši būtu tukšas, t.i., tās pilnībā ignorētu. Piemēram, pirmajam ierakstam vēlamais rezultāts ADDR1 ir "224 D N CHURCH ST", nevis "224 D N CHURCH ST None".

              Viens no Python rakstiem, ko atradu, piemin NULL problēmu:

              Vai ir cits veids, kā savienot Python, lai sasniegtu vēlamo rezultātu? Es cenšos apvīt galvu, kā Python tam pieiet, jo īpaši attiecībā uz tā izmantošanu ArcMap lauka kalkulatorā.

              • Es pamanīju, ka daži raksti ieteica visus laukus ievietot virknē, lai atrisinātu NULLS. Tomēr man nav paveicies, pievienojot str () laukus parādītā formāta paziņojuma laukos. Tas tikai kļūdītos. Vai šai liešanai vajadzētu būt atsevišķai līnijai?
              • Vai labāka pieeja būtu izmantot koda bloku, lai palaistu sava veida procesu, lai NULLS pārvērstu par tukšu pirms formatēšanas metodes palaišanas? Piemēram, pielāgot līdzīgu procesu?

              Visbeidzot, vai jūs varat ieteikt labu rokasgrāmatu iesācējiem, kurā paskaidrots, kā izmantot Python šādiem jautājumiem?


              Lauku saraksta modificēšana ar arcpy.da.UpdateCursor

              Man ir datu kopas lauku saraksts, kas ir virknes tipa lauki. Man ir jānoņem tukšas vietas no visām šo lauku rindām.

              Izpildlaika kļūda Traceback (pēdējais zvans): Fails "", 4. rinda, atribūtā Kļūda: objektam "NoneType" nav atribūta "strip"

              Es uzminu i vērtību rindā

              nav pareizajā formātā.

              Esmu pārbaudījis citu formatējumu, '"<>"'. Formātu (i). Arī tam ir kļūda, ievietojot UpdateCursor.

              Šis kods drukā pareizi formatētas vērtības ar dubultām quatatation zīmēm, kas nepieciešamas laukiem UpdateCursor iekšpusē

              . "WELL_UWI" "WELL_NAME" "ELEV_TYPE" "CURRENT_STATUS" "SPUD_DATE" "COMPLETION" "FIELD" "WL_COUNTY" "WL_STATE" "DRILLING_OPERATOR" "CURRENT_WELL_LEASE_NAME" "REMARK"

              Izpildlaika kļūdas izsekošana (pēdējais zvans): Fails "", 10. rinda, izpildlaika kļūda: nevar atrast lauku "" WELL_UWI "'


              1 Atbilde 1

              Jums ir vairākas lietas nepareizi. Pirmkārt, jūs nepareizi iestatāt kursoru. Ja gatavojaties atjaunināt, tam ir jābūt updateCursor, un jūs, starp citu, zvanījāt uz searchCursor, kuru jūs piezvanījāt nepareizi. Otrkārt, rindiņā "if.FEATURECLASS" jūs izmantojāt = (uzdevums), nevis == (vienlīdzības salīdzinājums). Pēc tam 2 rindas zemāk jūsu ievilkums ir sajaukts vairākās rindās. Un vispār nav skaidrs, ka jūsu funkcija zina fc vērtība. Pārliecinieties, ka esat pārliecināts. Pastāv virkne citu problēmu, taču sniegsim tikai piemēru, kas darbosies, un jūs varat to izpētīt:

              Ņemiet vērā, ka mēs tagad kā argumentu nododam fc nosaukumu, tāpēc jums tas būs jārisina pārējā koda daļā. Tāpat vislabāk ir izmantot AddFieldDelimiter, jo dažādiem fc ir nepieciešami atšķirīgi atdalītāji, un dokumenti par to vispār nav skaidri (dažreiz tie ir vienkārši nepareizi).


              Sintakse

              Ievades rastrs, kas attēlo vēlamā nosacījuma patieso vai nepatieso rezultātu.

              Tas var būt vesels skaitlis vai peldošā komata tips.

              Ievads, kura vērtības tiks izmantotas kā izejas šūnu vērtības, ja nosacījums ir nepatiess.

              Tas var būt vesels skaitlis vai peldošā komata rastrs, vai nemainīga vērtība.

              Loģiska izteiksme, kas nosaka, kurām no ievades šūnām ir jābūt patiesām vai nepatiesām.

              Izteiksme atbilst SQL izteiksmes vispārējai formai. Kurā klauzula piemērs ir "VALUE & gt 100".

              Atgriezt vērtību

              Ja nosacītā novērtēšana ir patiesa, NoData tiek atgriezta. Ja tā ir nepatiesa, tiek atgriezta otrā ievades rastra vērtība.


              Izmantojot ģeometrijas žetonus

              Ģeometrijas žetonus var izmantot arī kā īsceļus, lai piekļūtu pilniem ģeometrijas objektiem. Papildu ģeometrijas marķierus var izmantot, lai piekļūtu konkrētai ģeometrijas informācijai. Piekļuve pilnai ģeometrijai ir laikietilpīgāka. Ja jums ir nepieciešami tikai konkrēti ģeometrijas rekvizīti, izmantojiet žetonus, lai nodrošinātu īsceļus, lai piekļūtu ģeometrijas īpašībām. Piemēram, [email protected] atgriež x, y koordinātu kopu, kas apzīmē objekta simtdaļu.

              Objekta ģeometrijas objekts.

              Funkcijas centrālās x, y koordinātu kopa.

              Funkcijas centrālās x, y koordinātu kopa. Tādējādi tiek atgriezta tāda pati vērtība kā [email protected]

              Dubults objekta x koordinātas.

              Objekta y koordinātas dubultā.

              Dubults objekta z-koordinātas.

              Dubults objekta m vērtības.

              Esri JSON virkne, kas attēlo ģeometriju.

              Plaši pazīstamais OGC ģeometrijas binārais (WKB) attēlojums. Tas nodrošina pārnēsājamu ģeometrijas vērtības attēlojumu kā blakus esošo baitu plūsmu.

              Labi pazīstamais teksta (WKT) attēlojums OGC ģeometrijai. Tas nodrošina pārnēsājamu ģeometrijas vērtības attēlojumu kā teksta virkni.

              Dubults objekta laukums.

              Dubults objekta garums.


              Secīgas ID skriptēšana, pamatojoties uz augstāko vērtību

              Es cenšos paveikt skriptu, kas ģenerē bažas ID, kura pamatā ir pēdējais lielākais skaitlis, kas darbosies kā plānots uzdevums. Piemērs varētu būt C100, C101, (C102, C103 un C104 tika izdzēsti), C105, kur nākamais ID būtu C106, nevis pārrakstīt C105 kā C102 un turpināt uz C103.

              Es kaut kur atradu šī koda galveno daļu, un man patīk, kā tas savieno burtu kopā ar ciparu. Es esmu gatavs pievienot laukus, kuros tiek saglabāts numurs un pēc tam vēlāk tiek apvienots galīgais ID, vai viss, kas nepieciešams tik ātri, cik ātri. Piemērs būtu: ConcernID, PrefixCode, LastNumber (visi skriptā izmantotie lauki). PrefixCode būtu C noklusējuma vērtība, un laukā LastNumber būtu skaitļa daļa un tie tiktu apvienoti, veidojot ConcernID.

              Tas galu galā tiks izmantots ar uzņēmuma ģeodatubāzes funkciju klasi. Jebkuri ieteikumi būtu ļoti pateicīgi.

              Es šo pēcpusdienu izspēlējos un izdomāju sekojošo, kas ilustrē to, ko es mēģināju aprakstīt iepriekš. Tas varētu palīdzēt sakārtot veselu virkni pieaugošu identifikatoru tādai lietotnei kā Reporter.


              Vjylku

              Kāpēc šai laivai ir nosēšanās paliktnis? (SpaceX GO meklētājs) Vai ir kādi plāni, kā nolaist kapsulu?

              Vai mazas apdrošināšanas ir tā vērts?

              Boss Telling tiešo vadītāju es nošņorēju

              Es esmu gaisma, kas spīd tumsā

              Kas nepieciešams, lai kļūtu par tuksneša prasmju ceļvedi kā bizness?

              Raksts publicēts līdzīgi doktora disertācijai

              Vai tas ir Kiklopu skaitlis? "Neviens nezin!

              Kā atgūties pret Čūsku kā smagsvara raksturu?

              Kārtot masīvu pēc mēneša un gada

              Ko īsti nozīmē "smalks vīns"?

              Kāpēc ierobežot privāto veselības apdrošināšanu?

              Vai es varu apspriest patenta ideju par paaugstinājumu saskaņā ar Francijas likumiem?

              Vai ir lietderīgi lūgt bijušo profesoru pasūtīt man bibliotēkas grāmatu, izmantojot ILL?

              Vai man ir jāiesniedz nodokļi? Nav ienākumu, bezdarbnieks, bet samaksāja 2k studentu kredīta procentos

              Kāpēc P un P/poli triviāli nav vienādi?

              Instruments angļu valodas teksta lasāmības mērīšanai

              Īss stāsts par pilsētu savienošanu ar konveijera lenti

              Vai “cogitate” tiek lietots pareizi sadaļā “Es apzinos, ka panākumi ir atkarīgi no smaga darba”?

              Kāpēc, palielinoties ātrumam, automašīnas stūre kļūst vieglāka?

              Kā uzrakstīt haotisku neitrālu varoni un neļaut maniem lasītājiem domāt, ka viņi ir ļauni?

              Ko *miris *nozīmē *ko tu domā, miris? *?

              Kā izplatās skaņas vilnis?

              Kā izgatavot pistoli, kas šauj tuvcīņas ieročus un/vai zobenus?

              Vai aprēķināt 280 lauku vidējo vērtību, izmantojot lauku kalkulatoru, izmantojot formas faila atribūtu tabulu?

              Kolonnas noapaļošana atribūtu tabulā, izmantojot ArcGIS lauku kalkulatoru? Vērtību validēšana vairākos laukos atribūtu tabulā divas datu kopas? Summas vērtība ArcGIS atribūts (lauku kalkulators) Lauku aprēķināšana, ja Null ar lauku kalkulatoru Vai ir ātrāks veids, kā atribūtu tabulai pievienot lauku, kas balstīts uz zonālo statistiku? lauki, kas beidzas ar standarta sufiksu Neizdevās ģenerēt papildu ID ar sekojošu Python kodu koda blokā. Kāda ir mana koda kļūda?


              Skatīties video: Python: Working with Feature Data using ArcPy (Septembris 2021).