Suite

Calculer des champs avec des valeurs nulles à l'aide de arcpy.da.UpdateCursor d'ArcGIS for Desktop ?

Calculer des champs avec des valeurs nulles à l'aide de arcpy.da.UpdateCursor d'ArcGIS for Desktop ?


Comment calculer les champs avec des valeurs nulles ? J'ai plusieurs champs qui peuvent avoir des valeurs nulles, qui ne sont pas calculés dans le troisième champ.

importer arcpy avec arcpy.da.UpdateCursor(r"… gdb	est.gdb	est",["A", "B", "C"]) comme curseur : pour la ligne dans le curseur : ligne[2] = ligne[ 0] + ligne[1] curseur.updateRow(ligne)

Le résultat de ce calcul est cette erreur :

Traceback (appel le plus récent en dernier) : Fichier "C:UsersDesktopupdatecursor2.py", ligne 4, dans  row[2] = row[0] + row[1] TypeError : type(s) d'opérande non pris en charge pour + : 'NoneType' et 'float'

Le résultat du script est le même lorsque j'essaie d'utiliser la calculatrice de champ :

Comment utilisez-vous le curseur de mise à jour des données ou la calculatrice de champ pour calculer la somme des valeurs dans un nouveau champ si vous avez des valeurs nulles ?

J'utilise ArcGIS 10.1 SP1 for Desktop.


Voici un moyen de remplacer tous les zéros par des zéros :

importer arcpy avec arcpy.da.UpdateCursor(r"… gdb	est.gdb	est",["A", "B", "C"]) comme curseur : pour la ligne dans le curseur : a_value = ligne[0] si row[0] else 0 # Utiliser 0 quand "A" est faux b_value = row[1] if row[1] else 0 # Utiliser 0 quand "B" est faux row[2] = a_value + b_value cursor.updateRow(row )

Remarque : cela ne met pas réellement à jour les valeurs nulles dans la table ; il les remplace simplement par des zéros lors des calculs. Si vous souhaitez remplacer définitivement les zéros par des zéros, vous pouvez remplacer l'avant-dernière ligne parligne = [a_value, b_value, a_value + b_value].


Commençons par le calculateur de champ. cela devrait ressembler à ces 2 captures d'écran.

Lorsque je calcule des champs à l'intérieur d'un curseur de mise à jour (update_cursor), cela ressemble plus à ceci. Ici, j'ai un SearchCursor (la ligne est définie sur searchCursor.next) et un curseur de mise à jour (la ligne2 est définie sur update_cursor.next). C'est en fait légèrement différent puisque j'utilise des valeurs dans une couche différente pour les mises à jour et une sélection.

while row : while row2 : grpnumValue = row2.getValue("A") if (grpnumValue > 0): row.setValue("MAILING_GROUP", grpnumValue) row2 = searchCursor.next row = update_cursor.next()

Couche (service d'entités)

La ressource de couche représente une seule couche d'entités ou une table non spatiale dans un service d'entités. Une couche d'entités est une table ou une vue avec au moins une colonne spatiale.

Pour les tables, il fournit des informations de base sur la table, telles que son ID, son nom, ses champs, ses types et ses modèles. Pour les couches d'entités, en plus des informations de table, il fournit des informations telles que son type de géométrie, les échelles min et max et la référence spatiale. Chaque type comprend des informations sur le type, telles que l'ID de type, le nom et l'expression de définition. Les types incluent également un symbole par défaut et une liste de modèles d'entités. Chaque modèle de fonctionnalité comprend un nom de modèle, une description et une fonctionnalité prototype.

Les capacités de propriété renvoient les capacités de requête, de création, de suppression, de mise à jour, d'édition, de synchronisation, de téléchargement et d'extraction. La capacité de modification sera incluse si Créer, Supprimer ou Mettre à jour est activé pour un service d'entités.

La propriété geometryType renvoie le type de géométrie de la couche. Cinq types de géométrie sont pris en charge : point ( esriGeometryPoint ), multipoint ( esriGeometryMultipoint ), polyligne ( esriGeometryPolyline ), polygone ( esriGeometryPolygon ) et enveloppe ( esriGeometryEnvelope ). Pour en savoir plus sur ces types de géométrie pris en charge, voir Objets géométriques.

La propriété maxRecordCount renvoie le nombre maximal d'enregistrements qui seront renvoyés à la fois pour une requête.

La ressource Layer renvoie relatedTableId , cardinality , role , keyField et composite pour toutes les relations. En outre, les propriétés RelationshiptableId et keyFieldInRelationshipTable sont renvoyées uniquement pour les relations attribuées.

Les propriétés effectiveMinScale et effectiveMaxScale représentent les échelles effectives minimale et maximale auxquelles la couche est visible. Les échelles minimale et maximale effectives sont calculées en fonction des valeurs minScale et maxScale de la couche actuelle et de ses ancêtres.

La ressource Layer prend en charge un paramètre d'entrée returnUpdates qui accepte une valeur booléenne. Transmettez ce paramètre pour récupérer timeExtent mis à jour pour la couche.

La propriété de champ nullable indique si le champ peut accepter des valeurs nulles.

Si une couche a des pièces jointes, sa propriété hasAttachments sera true .

Si la couche objectIdField n'a pas de propriété de longueur ou si la propriété de longueur est définie sur 4, l'objectIdField est de 32 bits. Si objectIdField a une longueur de 8, objectIdField est de 64 bits.

La propriété geometryField décrit les paramètres du champ géométrique lui-même et inclut les sous-propriétés name , nullable et editable. D'autres sous-propriétés telles que modelName peuvent être fournies ou non. Il est possible d'avoir un champ géométrique qui n'est pas éditable. Pour les entités dans les couches où editable = false , les valeurs de géométrie sont gérées par le système et ne peuvent pas être modifiées directement, même par le propriétaire ou l'administrateur des données (par exemple, les couches de zone à valider du réseau de distribution). Ceci est différent de la propriété allowGeometryUpdates, qui permet au propriétaire ou à l'administrateur du service de contrôler si les utilisateurs non propriétaires/non administrateurs peuvent effectuer des mises à jour de géométrie. Les propriétaires ou les administrateurs peuvent effectuer des mises à jour de géométrie même lorsque allowGeometryUpdates est défini sur false tant que le champ de géométrie est modifiable.

La propriété supportsSQLExpression est vraie lorsqu'une couche prend en charge la possibilité d'utiliser des expressions SQL dans outStatistics , groupBy ou orderBy . Lorsque vous utilisez des expressions SQL sur une couche d'entités, vous pouvez configurer votre paramètre outStatistics comme ceci : [<"statisticType":"AVG","onStatisticField":"str_angle*100","outStatisticFieldName":"avg">] . La propriété supportsOutFieldSqlExpression est vraie lorsqu'une couche prend en charge les expressions SQL dans les outFields . Un exemple d'utilisation d'expressions SQL dans outFields peut être la conversion d'alias : outFields = County as CountyAlias, Elevation as ElevationAlias ​​.

supportsOutFieldSqlExpression n'est actuellement pris en charge que dans les services d'entités hébergés ArcGIS Online et Enterprise sur un magasin de données relationnelles à partir de 10.9."

La propriété SupportsLOD indique si la possibilité d'effectuer des requêtes LOD peut être activée pour une couche de service d'entités. Les requêtes Lod ont été activées et peuvent être interrogées lorsque la couche inclut une propriété lodInfos.

Nouveau à 10.9

Les éléments suivants sont nouveaux ou mis à jour dans la version 10.9 :

  • La mise en cache des réponses peut être activée pour les couches de service d'entités hébergées exécutées sur le magasin de données relationnelles. La mise en cache des réponses améliore les performances et l'évolutivité de certains types de requêtes. L'activation de la mise en cache des réponses nécessite d'abord la configuration d'un magasin d'objets. Voir l'opération updateDefinition pour plus de détails sur la mise en cache des réponses et comment l'activer. La propriété de couche suivante est définie lorsque la mise en cache des réponses est activée :
    • "supportsQueryWithCacheHint": true : indique que les requêtes de couche prennent en charge le paramètre cacheHint.
    • "editingInfo": ("lastEditDate": <dateValue>) : indique la date des dernières modifications effectuées sur le calque. Par exemple, "editingInfo": ("lastEditDate": 1609896851105) . La <dateValue> est une date d'époque en millisecondes.

    Les couches de service d'entités hébergées en ligne ont également "supportsQueryWithCacheHint": true et incluent "editingInfo": ("lastEditDate": <date value>)

    À partir de la version 10.9, le suivi des réplicas est automatiquement activé lorsque la synchronisation est activée sur les services d'entités hébergés.

      Il est possible de définir le fuseau horaire d'un service des champs de date comme inconnu. Définir le fuseau horaire comme inconnu signifie que les valeurs de date seront renvoyées telles quelles à partir de la base de données, plutôt que sous forme de valeurs de date en UTC. Les services d'entités non hébergés peuvent être configurés pour utiliser un fuseau horaire inconnu à l'aide d'ArcGIS Server Manager . La définition des fuseaux horaires sur inconnu définit également la propriété de couche datesInUnknownTimezone comme true. Actuellement, les services d'entités hébergés ne prennent pas en charge ce paramètre. Les fuseaux horaires inconnus ne s'appliquent pas aux champs de date de suivi de l'éditeur. Les champs de date de suivi de l'éditeur sont en UTC même lorsque l'heure du service est définie sur inconnue.

    La plupart des clients publiés précédemment vers ArcGIS Enterprise 10.9 ne pourront pas utiliser les services d'entités dont le paramètre de fuseau horaire est inconnu. ArcGIS Pro 2.7 ou une version plus récente peut fonctionner avec ces services d'entités. Pour que les clients puissent effectuer des requêtes, des modifications et/ou d'autres opérations, le paramètre timeReferenceUnknownClient doit être défini sur true sur ces opérations. La définition de timeReferenceUnknownClient=true indique que le client est capable de travailler avec des valeurs de date inconnues qui ne sont pas en UTC. Les opérations de couche qui incluent le paramètre timeReferenceUnknownClient incluent : query , applyEdits , addFeatures , updateFeatures , queryRelatedRecords , calculate et feature resources. Les opérations de service qui incluent le paramètre timeReferenceUnknownClient incluent : query , applyEdits , createReplica ,synchronousReplica et extractChanges .

    Nouveau à 10.8.1

    Les éléments suivants sont nouveaux ou mis à jour dans la version 10.8.1 :

    • Les services d'entités hébergés sur un magasin de données relationnelles prennent en charge la configuration d'une couche pour autoriser les requêtes LOD lorsque la propriété supportsLOD, sous advancedQueryCapabilities , est true . Pour autoriser les requêtes LOD, l'opération d'administrateur updateDefinition doit être exécutée pour définir la propriété lodInfos qui décrit les bacs.
    • La ressource de couche renvoie maintenant la propriété isDataReplicaTracked. Cette propriété, lorsqu'elle est définie sur true , indique que le suivi des réplicas a été activé pour la couche de service d'entités. Cette propriété est requise pour la synchronisation avec la gestion des versions de la branche nommée. Pour plus d'informations, consultez Activer le suivi des répliques.
    • L'opération de requête de couche prend en charge le centile en tant que statisticType lors de l'utilisation de outStatistics pour les services d'entités publiés à partir d'ArcGIS Pro qui référencent les données de géodatabase d'entreprise. Les couches qui prennent en charge les centiles auront la propriété supportsPercentileStatistics de l'objet advancedQueryCapabilities comme true .
    • Les données multipatch peuvent être interrogées avec externalizeTextures et f as pbf pour les services d'entités publiés à partir d'ArcGIS Pro .
    • Les services d'entités hébergés et non hébergés exécutés sur un serveur fédéré incluent une propriété serviceItemId. Cela décrit l'ID de l'élément de couche d'entités associé dans l'application d'accueil. Les services d'entités hébergés par ArcGIS Enterprise prennent en charge cette propriété depuis 10.7.
    • Les services d'entités hébergés sur les magasins de données relationnelles et spatio-temporelles dans ArcGIS Enterprise prennent en charge le mode de mise à jour pour la quantification. Ceci est indiqué par la propriété de couche supportsQuantizationEditMode définie sur true
    • Avant la version 10.7.1, lors de la publication de données activées pour l'archivage, versionnées traditionnelles, versionnées par branche ou participant à un jeu de données de contrôleur (réseau géométrique, topologie, réseau de distribution, etc.), l'opération de calcul n'était pas prise en charge. Depuis la version 10.7.1, l'opération de calcul est prise en charge avec tout ce qui précède pour les services d'entités qui autorisent les mises à jour.

    Les couches qui ont hasAttachments et supportsQueryAttachments à la fois comme true ont les fonctionnalités suivantes en 10.8.1 :

    Ces fonctionnalités s'appliquent aux services d'entités hébergés et non hébergés publiés à partir d'ArcGIS Pro .

    • L'objet attachmentProperties est inclus pour les services d'entités ArcGIS Enterprise. Il s'agissait déjà d'une fonctionnalité pour les services d'entités hébergés d'ArcGIS Online.
    • Une nouvelle propriété fieldname qui peut être utilisée avec le paramètre attachmentsDefinitionExpression de l'opération queryAttachments pour limiter les résultats en fonction des valeurs de la table des pièces jointes.
    • Les services de fonctionnalités hébergés par l'entreprise prennent en charge à la fois les mots-clés et exifInfo ( isEnabled as true ). Ces colonnes sont ajoutées automatiquement lors de la publication d'un nouveau service d'entités avec des pièces jointes ou de l'activation des pièces jointes sur une couche existante. En cas de mise à niveau à partir d'une version antérieure, les mots-clés et les colonnes exifInfo ne seront pas disponibles. Cependant, ils peuvent être ajoutés à l'aide de l'opération updateDefinition. Les services d'entités hébergés dans ArcGIS Online prennent déjà en charge les colonnes de pièces jointes.
    • De nouvelles propriétés de pièce jointe, id et globalid , ont été ajoutées pour toutes les couches de service d'entités qui prennent en charge les pièces jointes, y compris les services d'entités hébergés par ArcGIS Online.
    • Un nouvel objet attachmentFields répertorie les informations sur les champs de pièce jointe, telles que le type et la longueur. La propriété de nom attachmentFields peut être mise en correspondance avec la propriété attachmentProperties fieldName. Ces informations peuvent être utilisées pour formater correctement les requêtes et comprendre les limites de la réponse de longueur de champ. Seuls les champs qui correspondent aux propriétés avec isEnabled comme true seront répertoriés dans attachmentFields .
    • Les noms de champ sont désormais renvoyés en plus des propriétés de champ dans la réponse de l'opération queryAttachments. Si le nom du champ et le nom de la propriété correspondent, y compris la casse, une seule valeur est renvoyée dans la réponse pour représenter à la fois le champ et la propriété. En tant que meilleure pratique, il est préférable d'utiliser le nom de champ plutôt que la propriété lors de l'utilisation dans une application.

    Les services d'entités prennent désormais en charge les couches de topologie, introduites dans la version 10.8.1. Les couches topologiques sont des couches composites qui font référence à des sous-couches et n'ont aucune capacité. Les références de sous-couche décrivent les caractéristiques d'erreur et les zones à valider de la couche. Ces mêmes couches sont également répertoriées dans l'objet systemLayers de la couche topologique. Les systemLayers sont toujours en lecture seule (c'est-à-dire qu'ils n'ont jamais de capacités d'édition) et sont des sous-couches de la couche topologique. Les ressources de couche de systèmes de topologie incluent également une référence à la couche de topologie comme suit.

    Dans les clients comme ArcGIS Pro 2.6, les couches de topologie sont utilisées conjointement avec le service de validation pour prendre en charge la validation de la topologie et la correction des entités d'erreur.

    Nouveau à 10,8

    Ce qui suit est nouveau à 10.8 :

    • La ressource de couche d'entités renvoie désormais une propriété supportsDatumTransformation. Cette propriété est vraie si la couche de service d'entités prend en charge l'ajout de transformations de datum. Si true , les opérations Query au niveau de la couche, Query Related et Apply Edits au niveau de la couche autoriseront les transformations de données. De plus, la propriété de couche supportsQueryWithDatumTransformation dans advancedQueryCapabilities sera vraie si l'opération de requête au niveau de la couche prend en charge le paramètre datumTransformation.
    • La propriété de couche standardMaxRecordCountNoGeometry définit le nombre maximal d'enregistrements lors de l'interrogation d'une couche avec returnGeometry comme false et resultType comme standard .
    • La propriété de couche supportsFieldDescriptionProperty est vraie si la propriété de description de champ est prise en charge. La propriété de description de champ permet de stocker des types de valeur et des descriptions avec des champs dans une couche. L'opération Mettre à jour la définition des couches d'entités hébergées peut être utilisée pour ajouter ou définir une description de champ. Pour plus d'informations sur la définition des descriptions de champ et des valeurs de type de champ via l'interface utilisateur de l'application d'accueil, consultez Décrire les champs d'attribut.
    • Les colonnes de zone et de longueur gérées par le système nommées SHAPE_Area et SHAPE_Length sont désormais prises en charge sur les services d'entités hébergés (magasin de données relationnelles) dans Enterprise. Les propriétés geometryProperties shapeAreaFieldName , shapeLengthFieldName et units ont été ajoutées pour décrire les champs SHAPE_Area et SHAPE_Length. Ces noms de champs sont réservés. Si des données sont publiées qui ont déjà des champs avec ces noms, les champs d'origine peuvent être supprimés ou renommés.

    La casse des noms de champ peut varier selon le service.

    Nouveau à 10.7.1

    Ce qui suit est nouveau dans 10.7.1 :

    • Nouvelles propriétés de couche exposées sur une couche de service d'entités :
      • La couche d'entités prend désormais en charge l'opération de pièces jointes de requête si supportsQueryAttachments est vrai et hasAttachments est vrai sur la couche.
        • L'URL de la pièce jointe peut désormais être renvoyée dans la réponse des pièces jointes à la requête si supportsQueryAttachmentsWithReturnUrl est true et supportsQueryAttachments est true sur la couche.

        Nouveau à 10,7

        • Nouvelles propriétés de couche exposées sur une couche de service d'entités :
          • Les champs de suivi de l'éditeur peuvent désormais inclure une propriété dateFieldsTimeReference dans editFieldsInfo . Si dateFieldsTimeReference n'apparaît pas dans editFieldsInfo , le fuseau horaire peut être supposé être le même que celui de la couche. Le fuseau horaire de la couche sera UTC, sauf indication contraire par la propriété dateFieldsTimeReference de la couche.
          • supportsTopFeaturesQuery est vrai si une couche prend en charge l'opération queryTopFeatures.
          • La propriété sqlParserVersion est ajoutée pour les couches de service d'entités hébergées pour indiquer la syntaxe SQL 92 prise en charge pour les requêtes standardisées. Les valeurs incluent « PG_10.6.1 » pour les services d'entités hébergés basés sur un magasin de données relationnelles et « ES_10.6.1 » pour les services d'entités hébergés basés sur un magasin de données ArcGIS spatio-temporel. Aucune nouvelle opération de requête n'a été ajoutée pour la version 10.7, ce qui signifie que toutes les opérations de requête à partir de la version 10.7 relèvent de sqlParserVersion 10.6.1. La plupart de la syntaxe SQL 92 pour les requêtes standardisées est prise en charge avec les services d'entités hébergés basés sur un magasin de données relationnelles. Les services d'entités hébergés dans les magasins de données ArcGIS spatio-temporelles prennent en charge un sous-ensemble - consultez l'aide de la clause where de l'opération de requête de couche pour plus d'informations.
          • isUpdatableView est vrai sur une couche de vue de service d'entités hébergée lorsque les mises à jour de définition de service (par exemple, l'activation et la désactivation de fonctionnalités) sont autorisées sur les couches de vue.
          • La propriété supportedQueryFormats décrit les types de réponse pris en charge lors de l'interrogation d'une couche de service d'entités. Les valeurs incluent json , html et dans 10.7 peuvent également inclure pbf (protocol buffer), un codage binaire compact pour les données géographiques.
          • isDataBranchVersioned a la valeur true lorsqu'une couche référence une classe d'entités ou une table dans une géodatabase d'entreprise qui est versionnée par branche. Voir la gestion des versions de branche dans les géodatabases d'entreprise.
          • Le "supportsOrderByOnlyOnLayerFields": true indique que le paramètre orderByFields dans l'opération de requête de couche ne prend que les champs qui se trouvent dans la liste des champs de couches. Les champs générés pendant l'opération de requête (tels que le outStatisticFieldName de outStatistics ) ne peuvent pas être utilisés. Le défaut est faux .
          • Les propriétés shapeAreaFieldName , shapeLengthFieldName et units ont été ajoutées pour décrire les champs Shape__Area et Shape__Length.

          Nouveau à 10.6.1

          • Nouvelles propriétés de couche exposées sur une couche de service d'entités :
            • supportsHavingClause a la valeur true si une couche prend en charge les opérations de requête avec le paramètre having clause.
            • supportsCountDistinct est vrai si une couche prend en charge la requête de nombre avec des valeurs distinctes à l'aide de returnDistinctValues ​​et returnCountOnly .
            • supportsCoordinatesQuantization est vrai si une couche prend en charge la quantification des coordonnées.
            • La propriété supportsReturningGeometryCentroid est vraie si une couche prend en charge le renvoi de la géométrie du centre d'une entité surfacique. Souvent true lorsque supportsCoordinatesQuantization est true .
            • supportsQueryWithResultType a la valeur true si une couche prend en charge les opérations de requête à l'aide de resultType .
            • La propriété geometryField définit les propriétés du champ géométrique sur la couche d'entités.
            • La propriété standardMaxRecordCount définit le nombre maximal de fonctionnalités qu'une requête renvoie lorsque la requête utilise resultType = standard .
            • La propriété tileMaxRecordCount définit le nombre maximal d'entités qu'une requête renvoie lorsque la requête utilise resultType = tile .
            • La propriété maxRecordCountFactor est utilisée pour modifier les valeurs de standardMaxRecordCount et de tileMaxRecordCount pour l'interrogation.
            • hasMetadata indique si une couche contient des métadonnées.

            Nouveau à 10.6

            • Couches de réseau de distribution - Une nouvelle couche de "type": "Couche de réseau de distribution" est créée lorsque les réseaux de distribution sont publiés en tant que services d'entités. Ces couches peuvent être utilisées directement dans ArcGIS Pro à partir de la version 2.1 mais pas encore dans d'autres clients ArcGIS au moment de la version 10.6. Les couches de réseau de distribution sont des couches composites dans la mesure où elles font référence à des sous-couches et n'ont pas de capacités. Ils décrivent également les systemLayers qui sont utilisés pour prendre en charge les diagrammes et d'autres comportements spécifiques au réseau de services publics. Des informations sur les associationsTypeValues ​​prises en charge sont également incluses. Voir l'exemple de réponse JSON ci-dessous.
            • Couches d'annotations - Une nouvelle couche de "type" : "Couche d'annotations" est créée lorsque des couches d'annotations sont publiées avec les services d'entités d'ArcGIS Pro à partir de la version 2.1. Ces couches peuvent être utilisées directement dans ArcGIS Pro 2.1 ou version ultérieure, mais pas encore dans d'autres clients ArcGIS au moment de la version 10.6. Les couches d'annotation sont comme les autres couches dans la mesure où elles prennent en charge les opérations de requête et d'édition. Cependant, les couches d'annotations n'incluent pas les informations de dessin , les types ou les modèles . Les couches d'annotation prennent également en charge l'interrogation et la modification de la colonne Element avec est de "type": "esriFieldTypeBlob" . Depuis la version 10.6, seul ArcGIS Pro 2.1 peut fonctionner correctement avec les annotations.
            • Voici les nouvelles propriétés exposées sur une couche de service d'entités :
              • modelName est une propriété qui est exposée à la fois dans les champs et les couches. Le modelName est fourni par les tables, les classes d'entités et les champs de la géodatabase principale.
              • isDataArchived est vrai si une couche est activée pour l'archivage, ce qui lui permet de prendre en charge les requêtes avec historicMoment.
              • isCoGoEnabled est vrai si une couche a une géométrie de coordonnées activée.
              • parentLayer fait référence à la couche Utility Network à partir des sous-couches de la couche Utility Network. Pour les couches qui ne sont pas des sous-couches d'une couche Utility Network, la valeur est null .
              • La propriété champs defaultValue décrit la valeur par défaut définie pour le champ dans la géodatabase.
              • La propriété de description de domaine est la description définie pour le domaine dans la géodatabase. Par exemple, ( "domains": <"description":"Plages d'altitude">).
              • La propriété sourceSpatialReference décrit le système de coordonnées de la classe d'entités dans la géodatabase.
              • Les informations spatialReference et sourceSpatialReference contiennent de nouvelles propriétés pour le système de coordonnées verticales (VCS) (si défini), la tolérance et la résolution. Les propriétés de tolérance sont explicitement répertoriées tandis que d'autres propriétés sont fournies pour permettre à un client de calculer la résolution. Voir l'exemple de réponse JSON ci-dessous.
              • heightModelInfo est une propriété de couche qui est exposée lorsque la carte est publiée avec un système de coordonnées verticales défini.
              • sourceHeightModelInfo est une propriété de couche qui décrit le système de coordonnées verticales des classes d'entités lorsqu'il est défini.

              Lors de l'interrogation, les valeurs z sont renvoyées dans le système de coordonnées verticales sourceSpatialReference indépendamment de ce qui est spécifié comme référence spatiale de sortie. Il est également prévu que les valeurs z soient fournies dans le système de coordonnées verticales source sourceSpatialReference lors de l'édition.

              Les fonctionnalités répertoriées ci-dessus sont disponibles pour les services non hébergés publiés à partir d'ArcGIS Pro 2.1 ou version ultérieure, mais pas nécessairement pour les services publiés à partir d'ArcMap ou d'autres processus. Les services publiés à partir d'ArcGIS Pro 2.1 ont la couche et la propriété de service suivantes : "cimVersion": "2.1.0"

              Les services d'entités hébergés exposent la propriété maxResultWindow sur les couches spatio-temporelles. Cela a été introduit pour la première fois en 10.5.1 :

              • Il s'agit du nombre maximum de lignes pouvant être renvoyées pour une requête à une couche spatio-temporelle.
              • Il s'agit d'un paramétrage directement issu de la source de données spatio-temporelles (recherche élastique).
              • Si maxRecordCount (standard, tile ou none) est supérieur à maxResultWindow , vous n'obtiendrez que le nombre maxResultWindow de lignes renvoyées dans une requête.
              • Si maxRecordCount (standard, tile ou none) est inférieur à maxResultWindow , vous obtiendrez jusqu'à maxRecordCount de lignes dans une requête, mais vous ne pourrez paginer que jusqu'à maxResultWindow .
              • Vous pouvez ajuster la valeur à l'aide de l'opération Mettre à jour la définition sur la ressource de couche d'administration du service d'entités hébergé. Cela ajustera la propriété maxResultWindow sur la source de données arrière et spatio-temporelle pour la couche.
              • Consultez la documentation de recherche élastique pour les meilleures pratiques et les recommandations concernant le paramètre max_result_window.

              Nouveau à 10,5

              Ce qui suit est nouveau dans 10.5 :

              • returnDomainNames est un paramètre sur la ressource de couche où les informations de domaine incluent uniquement le nom de domaine. Les noms de domaine peuvent être mis en correspondance avec les informations complètes du domaine telles que renvoyées par l'opération queryDomains. Cette approche est un moyen plus efficace de travailler avec les domaines car elle nécessite de renvoyer les informations complètes du domaine une seule fois au lieu de chaque couche.
              • subtypeField est une propriété de couche qui est définie sur le nom du champ de sous-type. Si le calque n'a pas de sous-types, il est défini sur une chaîne vide ( "subtypeField": "" ).
              • defaultSubtypeCode une propriété de couche qui est définie sur le code de sous-type par défaut si la couche a des sous-types.
              • sous-types est un tableau qui décrit les sous-types d'une couche et est toujours inclus si la couche a des sous-types. Les domaines du tableau de types correspondront aux domaines du tableau de sous-types pour les couches qui ont un rendu de valeur unique basé sur la colonne de sous-type.
              • Les mergePolicy et splitPolicy sont incluses avec les informations complètes du domaine.
              • Les modèles incluront une vignette lorsque la couche Feature Service est publiée à partir d'une couche avec un moteur de rendu de dictionnaire. Les clients peuvent utiliser l'image en base 64 dans la vignette lors de l'affichage d'un sélecteur de modèle. La miniature est facultative et ne sera pas fournie dans les modèles d'autres couches Feature Service. Voir l'exemple de réponse JSON ci-dessous.
              • Si allowTrueCurvesUpdates est true et onlyAllowTrueCurveUpdatesByTrueCurveClients est true , les entités avec de vraies courbes peuvent être mises à jour par de vrais clients capables de créer des courbes (par exemple, ArcGIS Pro). Lorsque des modifications sont appliquées, le client true curve doit définir le paramètre trueCurveClient sur true .

              Si allowTrueCurvesUpdates est true et onlyAllowTrueCurveUpdatesByTrueCurveClients est false , les fonctionnalités avec de vraies courbes peuvent être mises à jour par n'importe quel client. Cela inclut les cas dans lesquels le client fournit une caractéristique densifiée pour mettre à jour la véritable caractéristique de courbe.

              • supportsQueryWithHistoricMoment indique si les requêtes de moment historique peuvent être effectuées sur la couche. Une couche doit être compatible avec l'archivage pour prendre en charge ce type de requêtes.
              • startArchivingMoment indique l'heure à laquelle l'archivage a été activé sur la couche.

              Modifications antérieures à 10.5

              Les propriétés suivantes décrivent les fonctionnalités qui ont été ajoutées au service de fonctionnalités via les versions antérieures à 10.5. Si la propriété n'existe pas, cela équivaut à avoir une valeur false ou non définie.


              J'obtiens une erreur "Impossible d'acquérir un verrou" lorsque j'essaie de calculer des valeurs dans plusieurs champs.

              J'ai donc créé un script qui ajoute 6 champs à un fichier de formes : Situs_city, Situs_St, Situs_Zip, Latitude, Longitude et GIS_Acres. En outre, le script est défini pour calculer les valeurs des champs Latitude, Longitude et GIS_Acres. Le script fonctionnera correctement jusqu'à la création du champ GIS_acres. Une fois ce champ créé, l'étape suivante consiste à calculer et c'est à ce moment-là que j'obtiens une erreur 999999 : impossible d'acquérir un verrou. L'aspect étrange est de temps en temps que le script s'exécute parfaitement. de toute façon, je suis perplexe. Je suis assez nouveau dans la création de scripts python. Si quelqu'un a une suggestion, ce serait génial.

              # Étape 1 - Copiez le nouveau [Taxlots_TEST_DeleteME.shp] de coveDepartment SharesCommonAssessorArcGIS vers E:STAGING (IKRIT)
              #définir les variables

              in_data = "S:CommonAssessorArcGISTaxlots_TEST_DeleteME.shp"
              Shapefile = "E:STAGINGTaxlots_TEST_DeleteME.shp"
              #out_data = "E:STAGINGTaxlots_TEST_DeleteME.shp"
              arcpy.Copy_management(in_data, Shapefile)
              imprimer "Étape 1 terminée"

              #Étape 2 : Ajoutez des champs de situation
              # Créer un nouveau champ - Situs_City (chaîne, 25)
              arcpy.AddField_management(Shapefile, "Situs_City", "TEXT", "","","25","","NULLABLE","NON_REQUIRED","")
              print "Étape 2a : Ajouter Situs_City terminé."

              # Créer un nouveau champ - Situs_St (chaîne, 2)
              arcpy.AddField_management(Shapefile, "Situs_St", "TEXT", "#", "#", "2", "#", "NULLABLE", "NON_REQUIRED", "#")
              print "Étape 2b : Ajouter Situs_St terminé."

              # Créer un nouveau champ - Situs_Zip (chaîne, 10)
              arcpy.AddField_management(Shapefile, "Situs_Zip", "TEXT", "#", "#", "10", "#", "NULLABLE", "NON_REQUIRED", "#")
              print "Étape 2c : ajout de Situs_Zip terminé."
              print « Étape 2 : Créez les champs de situation terminés."

              # Étape 3 : Créez et calculez les champs Latitude et Longitude.
              latLonRef = "Systèmes de coordonnéesSystèmes de coordonnées géographiquesMondeWGS 1984.prj"
              Taxlot_shp = "E:STAGINGTaxlots_TEST_DeleteME.shp"
              featureClassesList = Taxlot_shp.split("")
              field_Type = "DOUBLE"
              field_precision_1 = 12
              field_scale_1 = 8

              pour featureClass dans featureClassesList :
              arcpy.AddMessage("Calcul des coordonnées XY pour : " + featureClass)
              arcpy.AddField_management(featureClass, "Latitude", field_Type, field_precision_1, field_scale_1)
              arcpy.AddField_management(featureClass, "Longitude", field_Type, field_precision_1, field_scale_1)
              rows = arcpy.UpdateCursor(featureClass, "", latLonRef)
              pour rangée dans rangées :
              feat = row.getValue("forme")
              cent = feat.centroid
              # Pour obtenir l'aire du polygone : cent = feat.area
              ligne.Latitude = cent.Y
              ligne.Longitude = cent.X
              lignes.updateRow(ligne)
              #arcpy.AddMessage(str(lat) + ", " + str(lon))
              print « Étape 3 : Ajouter la latitude et la longueur terminées »

              # Étape 4 : Créer un nouveau champ - GIS_Acres (Double, 15, 3)
              Shapefile3 = "E:STAGINGTaxlots_TEST_DeleteME.shp"
              #Définir les variables locales
              field_Name = "GIS_Acres"
              field_Type = "DOUBLE"
              field_Precision = 15 #nombre total de chiffres stockés
              field_Scale = 4 # nombre de décimales

              arcpy.AddField_management(Shapefile3, field_Name, field_Type, field_Precision, field_Scale)
              arcpy.CalculateField_management(Shapefile3, field_Name, '[email protected]!', "PYTHON_9.3")
              print "Étape 4 : Calculer les acres complètes"

              print « "


              Concaténer des chaînes avec Field Calculator et Python - gérer les NULLS

              par ChrisDonohue__G FAI

              J'ai des données d'adressage que je voudrais mettre à jour et l'une des tâches consiste à concaténer un nouveau champ d'adresse complète [ADDR1] en combinant plusieurs des champs de composant. Je sais comment faire cela en VBScript, mais j'ai pensé que ce serait un bon exemple pour travailler en Python, car je n'utilise pas souvent Python et j'ai beaucoup à apprendre. Mon expérience en programmation est FORTRAN et BASIC, et dans les années qui ont suivi, il s'agissait de codes d'adaptation de hack and slash populaires pour AML/Avenue/VBA/VB.Net - alors supposons que je connais peu Python.

              Ce qui est souhaité (psuedo-logique) :

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

              J'utilise ArcGIS 10.2.1 et les données présentées ici sont des données de test dans une classe d'entités File Geodatabase.

              Après avoir parcouru divers articles d'aide, il semble qu'en Python, la méthode .format fonctionnerait. Cependant, lorsque je l'exécute dans Field Calculator, le résultat semble bon, sauf que "Aucun" est concaténé sous forme de texte si la valeur du champ d'origine était NULL (ce problème ne se pose pas avec VBScript). J'aimerais que toutes les valeurs de NULL soient simplement vides, c'est-à-dire qu'elles les ignorent complètement. Par exemple, pour le premier enregistrement, le résultat souhaité dans ADDR1 est "224 D N CHURCH ST" et non "224 D N CHURCH ST None".

              L'un des articles Python que j'ai trouvé mentionne le problème NULL :

              Existe-t-il une autre manière de procéder à la concaténation en Python pour obtenir le résultat souhaité ? J'essaie de comprendre comment Python aborde cela, en particulier en ce qui concerne son utilisation dans ArcMap dans Field Calculator.

              • J'ai remarqué que certains articles suggéraient de convertir tous les champs en chaîne pour résoudre les NULLS. Cependant, je n'ai pas eu de chance d'ajouter str() avec les champs de l'instruction de format affichée. Ce serait juste une erreur. Est-ce que cela devrait être une ligne séparée pour faire le casting ?
              • Une meilleure approche serait-elle d'utiliser le Codeblock pour exécuter une sorte de processus pour convertir NULLS en blanc avant d'exécuter la méthode de formatage ? Par exemple, adapter un processus similaire à celui-ci ?

              Enfin, pouvez-vous recommander un bon guide pour les débutants qui explique comment utiliser Python pour ce genre de problèmes ?


              Modifier une liste de champs avec arcpy.da.UpdateCursor

              J'ai une liste de champs d'un ensemble de données qui sont des champs de type chaîne. Je dois supprimer les espaces vides de toutes les lignes de ces champs.

              Erreur d'exécution Traceback (appel le plus récent en dernier) : fichier "", ligne 4, dans AttributeError : l'objet 'NoneType' n'a pas d'attribut 'strip'

              Je devine la valeur de i dans la ligne

              n'est pas au bon format.

              J'ai testé un formatage différent, '"<>"'.format(i). Il a également une erreur lorsqu'il est placé dans UpdateCursor.

              Ce code imprime des valeurs correctement formatées, avec des doubles guillemets, qui sont requises pour les champs dans UpdateCursor

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

              Erreur d'exécution Traceback (appel le plus récent en dernier) : Fichier "", ligne 10, dans RuntimeError : Impossible de trouver le champ '"WELL_UWI"'


              1 réponse 1

              Vous avez un certain nombre de problèmes. Premièrement, vous ne configurez pas correctement le curseur. Il doit s'agir d'un updateCursor si vous allez mettre à jour, et vous avez appelé un searchCursor, que vous avez appelé de manière incorrecte, soit dit en passant. Deuxièmement, vous avez utilisé = (affectation) au lieu de == (comparaison d'égalité) dans la ligne "if row.FEATURECLASS . Ensuite, 2 lignes en dessous, votre indentation est perturbée sur plusieurs lignes. Et il n'est pas clair du tout que votre fonction le sache la valeur de fc. Passez-le comme argument pour être sûr. Un tas d'autres problèmes existent, mais donnons juste un exemple qui fonctionnera, et vous pouvez l'étudier :

              Notez que nous passons maintenant le nom du fc en tant qu'argument, vous devrez donc vous en occuper dans le reste de votre code. Il est également préférable d'utiliser AddFieldDelimiter, car différents fc nécessitent des délimiteurs différents, et les documents ne sont pas clairs du tout à ce sujet (parfois ils sont tout simplement faux).


              Syntaxe

              Raster en entrée représentant le résultat vrai ou faux de la condition souhaitée.

              Il peut être de type entier ou à virgule flottante.

              L'entrée dont les valeurs seront utilisées comme valeurs de cellule de sortie si la condition est fausse.

              Il peut s'agir d'un nombre entier ou d'un raster à virgule flottante, ou d'une valeur constante.

              Une expression logique qui détermine laquelle des cellules d'entrée doit être vraie ou fausse.

              L'expression suit la forme générale d'une expression SQL. Un exemple de clause where_clause est "VALUE > 100" .

              Valeur de retour

              Si l'évaluation conditionnelle est vraie, NoData est renvoyé. Si false, la valeur du deuxième raster en entrée est renvoyée.


              Utiliser des jetons de géométrie

              Les jetons de géométrie peuvent également être utilisés comme raccourcis au lieu d'accéder à des objets de géométrie complète. Des jetons de géométrie supplémentaires peuvent être utilisés pour accéder à des informations de géométrie spécifiques. L'accès à la géométrie complète prend plus de temps. Si vous n'avez besoin que de propriétés spécifiques de la géométrie, utilisez des jetons pour fournir des raccourcis pour accéder aux propriétés de la géométrie. Par exemple, [email protected] renvoie un tuple de coordonnées x,y qui représentent le centroïde de l'entité.

              Un objet de géométrie pour l'entité.

              Un tuple des coordonnées centroïdes x,y de l'entité.

              Un tuple des coordonnées centroïdes x,y de l'entité. Cela renvoie la même valeur que [email protected] .

              Un double de la coordonnée x de l'entité.

              Un double de la coordonnée y de l'entité.

              Un double de la coordonnée z de l'entité.

              Un double de la valeur m de la caractéristique.

              La chaîne Esri JSON représentant la géométrie.

              La représentation binaire bien connue (WKB) pour la géométrie OGC. Il fournit une représentation portable d'une valeur géométrique sous la forme d'un flux contigu d'octets.

              La représentation textuelle bien connue (WKT) pour la géométrie OGC. Il fournit une représentation portable d'une valeur géométrique sous forme de chaîne de texte.

              Un double de la surface de l'élément.

              Un double de la longueur de la fonctionnalité.


              Script d'un ID séquentiel basé sur la valeur la plus élevée

              Ce que j'essaie d'accomplir, c'est un script qui génère un ID de préoccupation basé sur le dernier nombre le plus élevé qui s'exécutera en tant que tâche planifiée. Un exemple serait C100, C101, (C102, C103 et C104 ont été supprimés), C105 où l'ID suivant serait C106 et ne remplacerait pas C105 par C102 et continuerait à C103.

              J'ai trouvé la partie principale de ce code quelque part, et j'aime la façon dont il concatène une lettre avec un nombre. Je suis prêt à ajouter des champs qui stockent un numéro, puis concatène l'ID final plus tard, ou tout ce que cela prend tant que cela est rapide. Exemple : ConcernID, PrefixCode, LastNumber (tous les champs utilisés dans le script). PrefixCode serait une valeur par défaut de C et le champ LastNumber contiendrait la partie numérique et les combinerait pour former le ConcernID.

              Cela sera finalement utilisé avec une classe d'entités de géodatabase d'entreprise. Toutes les suggestions seraient grandement appréciées.

              J'ai joué avec ça cet après-midi et j'ai trouvé ce qui suit qui illustre ce que j'essayais de décrire ci-dessus. Cela pourrait aider à organiser toute une série d'identifiants incrémentiels pour une application comme Reporter.


              Vjylku

              Pourquoi ce bateau a-t-il une aire d'atterrissage ? (Go Searcher de SpaceX) Des plans pour des atterrissages de capsules propulsives?

              Les petites assurances en valent-elles la peine ?

              Boss Telling superviseur direct que j'ai balancé

              Je suis la lumière qui brille dans le noir

              Que faut-il pour devenir un guide des compétences en milieu sauvage en tant qu'entreprise ?

              Article publié similaire à la thèse de doctorat

              Est-ce un numéro Cyclope ? "Personne ne sait!

              Comment récupérer contre Snake en tant que personnage poids lourd ?

              Trier le tableau par mois et année

              Quelle est exactement la signification de « bon vin » ?

              Pourquoi restreindre l'assurance-maladie privée?

              Puis-je négocier une idée de brevet pour une augmentation, en droit français ?

              Est-il approprié de demander à un ancien professeur de me commander un livre de bibliothèque via le PEB ?

              Dois-je déclarer mes impôts ? Pas de revenu, sans emploi, mais payé 2k en intérêts de prêt étudiant

              Pourquoi P et P/poly ne sont-ils pas trivialement identiques ?

              Outil de mesure de la lisibilité du texte anglais

              Petite histoire sur les villes reliées par un tapis roulant

              Est-ce que « cogiter » est utilisé de manière appropriée dans « Je suppose que le succès repose sur un travail acharné » ?

              Pourquoi le volant d'une voiture s'allège avec l'augmentation de la vitesse

              Comment écrire un protagoniste neutre chaotique et empêcher mes lecteurs de penser qu'ils sont mauvais ?

              Que signifie *mort* dans *Que veux-tu dire, mort ?* ?

              Comment se propage une onde sonore ?

              Comment fabrique-t-on une arme à feu qui tire des armes de mêlée et/ou des épées ?

              Calculer la valeur moyenne de 280 champs avec le calculateur de champs à partir de la table attributaire du fichier de formes ?

              Arrondir la colonne dans la table attributaire à l'aide de la calculatrice de champ ArcGIS ?Valider les valeurs dans plusieurs champs d'une table attributaire deux jeux de données ?Valeur somme attribut ArcGIS (calculateur de champ)Calcul des champs si Null avec le calculateur de champExiste-t-il un moyen plus rapide d'ajouter un champ basé sur des statistiques zonales à une table attributaire ?Utilisation du calculateur de champ ArcGIS avec variable globale ?Calculer la valeur maximale à partir d'un sous-ensemble de champs se terminant par un suffixe standardImpossible de générer un ID incrémentiel avec le code Python suivant dans le bloc de code. Quelle est l'erreur dans mon code ?


              Voir la vidéo: GIS Tools: ArcMapArcGIS Tool for connecting points