Suite

Trouver des entités surfaciques de parcelle avec façade sur plusieurs rues à l'aide d'ArcGIS Desktop ?

Trouver des entités surfaciques de parcelle avec façade sur plusieurs rues à l'aide d'ArcGIS Desktop ?


Le ministère des Travaux publics aimerait savoir combien de propriétés dans la ville ont un trottoir à l'avant et à l'arrière. Pour y arriver, je cherche une méthode pour trouver des parcelles avec façade sur plus d'une route. Je travaille dans ArcInfo 9.3.1 (fichier géodatabase). Je recherche une solution qui ne nécessite pas de script ou de téléchargement d'autres outils. Les axes des rues et les polygones de parcelle sont disponibles ; il n'y a pas de couche de trottoir.

En utilisant certaines des idées de ce forum, j'ai développé et testé un processus. Certains des résultats sont déroutants (les lots d'angle peuvent ou non être inclus dans les résultats finaux - je pense que DPW ne veut pas que les lots d'angle soient inclus) et je suis préoccupé par le fait de l'étendre aux 42000 parcelles complètes (j'ai testé 1223 parcelles ). Y a-t-il des étapes à ajouter à cette méthode pour améliorer les résultats ? Existe-t-il un autre moyen d'accomplir la même chose qui pourrait être plus automatisé via le générateur de modèles ?

  • Outil Exécuter l'entité à la ligne sur la classe d'entités des polygones de parcelle (deux lignes sont créées pour les limites partagées par les polygones et les lignes conservent l'identifiant de la parcelle)
  • Construisez une topologie de géodatabase avec cette classe d'entités de ligne de parcelle nouvellement créée à l'aide de la règle « ne doit pas avoir de chevauchements », puis validez la topologie (les lignes intérieures seront erronées)
  • Dans ArcMap, ajoutez la topologie et la classe d'entités et ouvrez l'inspecteur d'erreurs, puis recherchez les erreurs > sélectionnez toutes les erreurs > clic droit > sélectionnez les entités > supprimer (pour supprimer les lignes intérieures)
  • Fréquence d'exécution sur les entités restantes dans la classe d'entités de ligne de parcelle avec l'ID de parcelle comme champ de fréquence - sélectionnez les enregistrements dans la table où Fréquence > 1 et exportez vers une nouvelle table
  • Fréquence de jointure> 1 table aux polygones de parcelles en fonction de l'ID de parcelle, ne conservant que les enregistrements correspondants - exportez les résultats de la jointure

  1. Si votre réseau routier est divisé par segments, dissolvez les zones tampons en fonction du nom de la route ou d'un attribut commun afin que les segments individuels des routes ne comptent pas comme deux routes distinctes à l'étape suivante.

  2. Tamponnez vos lignes médianes de rue d'une quantité standard - plus de la moitié de la largeur typique de l'emprise, mais pas si grande qu'elle chevaucherait des parcelles qui n'y font pas face. Vous pouvez choisir différentes zones tampons pour différentes classes de routes. Lorsque vous tamponnez, ne fusionnez pas les polygones.

  3. Joignez spatialement les parcelles aux tampons routiers, en choisissant "un vers plusieurs". Le champ "comptage" sur les résultats doit vous permettre d'identifier toutes les parcelles à deux façades.

Vous disposez maintenant d'un tableau avec des lignes pour chaque chevauchement entre une parcelle et une route. Vous pouvez facilement résumer cela pour trouver toutes les parcelles chevauchant deux routes ou plus à l'aide d'un SIG ou d'une base de données. Mais éliminer les lots de coin sera plus délicat. Voici une méthode générale :

  1. Configurez la topologie pour la couche tampon avec une règle "ne doit pas se croiser".

  2. Exportez toutes les erreurs vers une nouvelle classe d'entités d'intersections.

  3. L'espacement joint les intersections à la couche tampon, en choisissant "un vers plusieurs".

À ce stade, vous avez deux tables : une avec toutes les façades et une avec toutes les intersections entre les routes. Ce ne sera pas facile, mais vous pouvez écrire une requête SQL qui sélectionne trouve toutes les parcelles qui ont deux façades où ces façades ne se coupent pas. Les résultats seraient l'ensemble de toutes les parcelles qui ont plusieurs façades qui ne se coupent pas.

Un avantage de cette méthode est qu'elle évite de choisir des parcelles avec des bords qui ne sont pas sur des routes, comme lorsqu'une parcelle est adjacente à une ruelle, un plan d'eau, une emprise de chemin de fer, etc. Un inconvénient est que la zone tampon ne sera pas parfait, et vous devrez toujours le vérifier visuellement pour les erreurs.

Je ne sais pas comment écrire le SQL - peut-être que quelqu'un d'autre peut intervenir là-dessus.

Éditer Réflexions sur le SQL :

Il serait assez simple à résoudre pour les parcelles à deux façades comme ci-dessous. Ensuite, vous devrez peut-être examiner manuellement les parcelles avec plus de deux façades, mais j'espère qu'il y en aurait peu, et la plupart seraient de toute façon des lots de coin.

Cela peut fonctionner pour sélectionner uniquement des parcelles sans angle avec deux façades :

sélectionnez ParcelID à partir des parcelles où parcelID n'est pas dans ( ((sélectionnez Parcels1.parcelID, intersections.intersectionID à partir des intersections à gauche se joignent (Sélectionnez first(RoadID) comme Road1, last(RoadID) comme Road2, compte (*) comme façades, ParcelID de Parcels où count(*) = 2 groupe par ParcelID) comme Parcels1 sur les intersections.RoadID = Parcels1.Road1) comme jointure interne int1 (sélectionnez Parcels2.parcelID, intersections.intersectionID à partir des intersections à gauche rejoindre (Sélectionnez first(RoadID) as Road1, last(RoadID) ) comme Road2, compte(*) comme façades, ParcelID de Parcels où count(*) = 2 group by ParcelID) comme Parcels2 sur les intersections.RoadID = Parcels2.Road2) comme int2 sur int1.intersectionID sur int2.intersectionID))

J'ai été en mesure de fournir des résultats à Travaux publics afin que le personnel puisse les examiner selon leurs critères. Voici un aperçu de ma procédure finale.

  1. Séparez les axes des rues par classe de route en nouvelles classes d'entités (US & State Highway, Major City Street/City Street, Private Drive/Driveway, ignorez l'Interstate, Ramp, Path, Cemetery)

  2. Créer une zone tampon autour de chaque classe d'entités de classe de route : type d'extrémité FLAT, type de fusion LIST dans le champ d'identification du nom de la rue, la taille de la zone tampon dépend de la classe de route

  3. Fusionner les classes d'entités tampons

  4. Intersection de la classe d'entités tampon fusionnée avec des polygones de parcelle

  5. Exécuter l'outil Fréquence sur la classe d'entités Intersect avec champ de fréquence = champ d'ID de parcelle

  6. Exporter les sélections de la table de fréquence en fonction du champ de fréquence (ignorer la fréquence = 1, sélectionner la fréquence = 2, fréquence = 3, fréquence = 4, fréquence = 5+)

  7. Joignez chaque table de fréquences aux polygones de parcelles sur le champ d'identification de parcelle - conservez uniquement les enregistrements correspondants et exportez la classe d'entités jointe

  8. Examinez chaque classe d'entités exportée - recherchez les zones où la zone tampon ne couvrait pas les parcelles telles que les culs-de-sac

la fréquence 5+ comprend les lots d'angle avec une façade arrière supplémentaire ou des formes étranges, les grands lots (terrain de golf) ou les lots d'angle avec des artefacts tampons, les lots d'angle qui comprennent deux coins, les parcelles traversées par des routes

la fréquence 4 sera des lots de coin

la fréquence 3 comprend les parcelles contiguës aux lots d'angle, les grandes parcelles en plusieurs parties divisées par une route, les artefacts de la zone tampon des rues transversales, la parcelle avec 3 routes d'entrée

la fréquence 2 inclut les parcelles avec façade sur deux routes, mais surveillez les parcelles d'angle où la limite de la parcelle d'angle est trop éloignée de la zone tampon pour se croiser, route à l'intérieur d'une parcelle, 2 entrées de parcelle sur la même route, la route change de nom devant une parcelle, interétatique colis