Ik denk dat deze blogpost een mooie vervolg is op de recente blogpost van Dan Patterson<\/A>, ...Dat lege gevoel...<\/A> Het gesprek over null en lege geometrieën in ArcGIS is niet nieuw, maar het vergt wel wat begrip.<\/EM><\/P><\/P>Als het gaat om het maken van nieuwe feature classes, ben ik er zeker van dat de meeste mensen bekend zijn met het volgende scherm uit de New Feature Class wizard:<\/P><\/P><\/P>Bij het maken van een nieuwe feature class met ArcGIS Desktop, zowel via de GUI als ArcPy, staan de standaardinstellingen toe dat er NULL waarden in het SHAPE veld voorkomen (zie gele markering hierboven). Ongeacht of NULLs in het SHAPE veld een goed of slecht idee zijn, ze worden standaard ondersteund en toegestaan, dus het is goed om te begrijpen wat er gebeurt of kan gebeuren wanneer geometrieën niet worden ingevuld samen met de rest van een record in feature classes.<\/P><\/P>Na het oplossen van verschillende gevallen waarin NULL niet echt NULL was, besloot ik dieper te onderzoeken wat er echt gebeurt wanneer geometrieën niet worden ingevuld in feature classes. Het blijkt dat het antwoord afhangt van zowel de tool als het type geodatabase dat wordt gebruikt om records in te voegen, op te slaan en op te halen. Hier worden de resultaten gepresenteerd voor enkele van de meest gebruikte tools en types geodatabases.<\/P><\/P>Tabel 1 toont wat er daadwerkelijk wordt ingevuld in het SHAPE veld wanneer niets, None<\/SPAN>, een lege geometrie en een niet-lege geometrie worden ingevoegd in een polygon feature class met behulp van drie verschillende methoden.<\/P><\/P>TABEL 1: SHAPE Veldwaarden in Feature Class<\/TD><\/TR>Opslag<\/P>Type<\/P><\/TH>Invoeg<\/P>Methode<\/P><\/TH>NIETS<\/STRONG><\/TH>NONE<\/STRONG><\/TH>LEEG<\/STRONG><\/TH>POLYGON<\/STRONG><\/TH><\/TR>PGDB<\/P><\/TD>ArcMap Editor<\/P><\/TD>Null<\/P>NVT<\/P>NVT<\/P>Polygon<\/P>PGDB<\/P>arcpy.InsertCursor<\/P>Null<\/P>Fout<\/P>Leeg<\/P>Polygon<\/P>PGDB<\/P>arcpy.da.InsertCursor<\/P>Null<\/P>Null<\/P>Null<\/P>Polygon<\/P>FGDB<\/P>ArcMap Editor<\/P>Leeg<\/P>NVT<\/P>NVT<\/P>Polygon FGDBarcpy.InsertCursorNullFoutLeegPolygonFGDBarcpy.da.InsertCursorNullNullNullPolygonSDE(SQL)ArcMap EditorLeegNVTNVTPolygonSDE(SQL)arcpy.InsertCursorNullFoutLeegPolygonSDE(SQL)arcpy.da.InsertCursorNullNullNullPolygonOpslagTypeOphalenMethodeNULLEMPTYPOLYGONPGDBarcpy.SearchCursorNoneEmptyPolygonPGDBarcpy.da.SearchCursorNoneNonePolygonFGDBarcpy.SearchCursorNoneEmptyPolygonFGDBarcpy.da.SearchCursorNoneNonePolygonSDE(SQL)arcpy.SearchCursorNoneEmptyPolygonSDE(SQL)arcpy.da.SearchCursorNoneNonePolygonSDE(ORA)arcpy.SearchCursorNoneEmptyPolygonSDE(ORA)arcpy.da.SearchCursorNoneNonePolygonOPMERKING:Opslagtype:PGDB := persoonlijke geodatabaseFGDB := bestandgeodatabaseSDE(SQL) := SQL Server enterprise geodatabaseSDE(ORA) := Oracle enterprise geodatabaseOphaalmethode:arcpy.SearchCursor := originele/oude ArcPy search cursorarcpy.da.SearchCursor := ArcPy Data Access search cursorSHAPE Waarde:NULL := NULL waarde/markering in SHAPE veldEMPTY := lege polygon of lege collectie in SHAPE veldPOLYGON := niet-lege polygon in SHAPE veldGeometrie ophalen:None := Python None objectEmpty := lege polygon of lege collectiePolygon := niet-lege polygon
<\/P>
Als het gaat om het maken van nieuwe feature classes, ben ik er zeker van dat de meeste mensen bekend zijn met het volgende scherm uit de New Feature Class wizard:<\/P>
Bij het maken van een nieuwe feature class met ArcGIS Desktop, zowel via de GUI als ArcPy, staan de standaardinstellingen toe dat er NULL waarden in het SHAPE veld voorkomen (zie gele markering hierboven). Ongeacht of NULLs in het SHAPE veld een goed of slecht idee zijn, ze worden standaard ondersteund en toegestaan, dus het is goed om te begrijpen wat er gebeurt of kan gebeuren wanneer geometrieën niet worden ingevuld samen met de rest van een record in feature classes.<\/P>
Na het oplossen van verschillende gevallen waarin NULL niet echt NULL was, besloot ik dieper te onderzoeken wat er echt gebeurt wanneer geometrieën niet worden ingevuld in feature classes. Het blijkt dat het antwoord afhangt van zowel de tool als het type geodatabase dat wordt gebruikt om records in te voegen, op te slaan en op te halen. Hier worden de resultaten gepresenteerd voor enkele van de meest gebruikte tools en types geodatabases.<\/P>
Tabel 1 toont wat er daadwerkelijk wordt ingevuld in het SHAPE veld wanneer niets, None<\/SPAN>, een lege geometrie en een niet-lege geometrie worden ingevoegd in een polygon feature class met behulp van drie verschillende methoden.<\/P><\/P>TABEL 1: SHAPE Veldwaarden in Feature Class<\/TD><\/TR>Opslag<\/P>Type<\/P><\/TH>Invoeg<\/P>Methode<\/P><\/TH>NIETS<\/STRONG><\/TH>NONE<\/STRONG><\/TH>LEEG<\/STRONG><\/TH>POLYGON<\/STRONG><\/TH><\/TR>PGDB<\/P><\/TD>ArcMap Editor<\/P><\/TD>Null<\/P>NVT<\/P>NVT<\/P>Polygon<\/P>PGDB<\/P>arcpy.InsertCursor<\/P>Null<\/P>Fout<\/P>Leeg<\/P>Polygon<\/P>PGDB<\/P>arcpy.da.InsertCursor<\/P>Null<\/P>Null<\/P>Null<\/P>Polygon<\/P>FGDB<\/P>ArcMap Editor<\/P>Leeg<\/P>NVT<\/P>NVT<\/P>Polygon
Opslag
Type
Ophalen
Methode
OPMERKING:
Het is duidelijk dat er enkele verschillen zijn, inconsistenties zou je kunnen zeggen, in hoe verschillende tools niets of lege geometrieën invoegen in een feature class die NULL waarden toestaat. Zelfs met dezelfde tool zijn er situaties waarin niets of lege geometrieën anders worden behandeld tussen verschillende typen geodatabases. Er zijn ook verschillen in hoe verschillende search cursors, en waarschijnlijk update cursors, lege geometrieën ophalen uit feature classes.
Ik kan niet zeggen wat het allemaal betekent, maar er zijn een paar punten die mij opvielen.
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.