Формафайл багатокутника з нульовими значеннями?


10

Хтось знає, де я можу знайти зразок форм-файлу, який містить нульові записи в ньому (бажано, файл з форматом багатокутника)?

Я не впевнений, як створити його з нульовими записами.

Відповіді:


10

Попереджуйте, що багато програмного забезпечення для читання SHP-файлів не підтримують нульові значення для геометрії. Навіть старіші версії ArcView мали проблеми.

Я створив зразок тут: http://www.routeware.dk/temp/shp_null_sample.zip У ньому є 3 записи, у другого немає геометрії.


Які версії ArcView? Я пам'ятаю, що AV 2.x та 3.x створювали б нульові геометрії кожного разу, коли вони створювали нове форматне зображення (об’єкт "FTab" в авеню), тому нульові геометрії були загальними і повністю підтримувалися.
whuber

null geoms підтримуються, вони є дійсним значенням (невідомо) для геометрії. Проблема - це те, що багато програмного забезпечення використовують геометрію, не попередньо перевіряючи, чи вона недійсна, тоді трапляються погані речі, такі як збої. Ось чому існує gp-інструмент управління даними \ CheckGeometry, якщо програмне забезпечення має проблеми з fc, це, як правило, перше, що потрібно перевірити.
gotchula

1
Проста справа - додати нові записи до нового формату (ctrl-A у View GUI AV 3.x це зробить). Вони автоматично мають нульові форми. Нульові форми також були отримані в результаті недійсних операцій, таких як важкопроекційні фігури, що знаходяться за межами області проекції. AV 3.x, як правило, не мав проблем з ними. Я думаю, що проблеми можуть виникнути в AV 8 і пізніших версіях: фактично, новіше програмне забезпечення ESRI не відповідало їх власним специфікаціям.
whuber

1
@UffeKousgaard, я застосував закреслення до тієї частини цієї публікації, яка стосувалась посилання, яка зараз мертва. Чи можете ви детальніше розглянути цю відповідь, щоб запобігти видаленню посади, що може призвести до втрати репутації.
Фестер

1
Файл повернувся.
Uffe Kousgaard

10

Я припускаю, що ви маєте на увазі нуль для стовпця геометрія / форма, тому що shapefiles не підтримують null для будь-якого типу поля, крім геометрії та (я чую) для полів дати.

Код нижче створює 1 форм-файл з 1 записом / ознакою, що має нульову поліметрію.


  import arcpy
  import os
  outfc = r'c:\temp\outfc.shp'
  arcpy.env.workspace = os.path.dirname(outfc)
  arcpy.CreateFeatureclass_management(arcpy.env.workspace,os.path.basename(outfc), 'polygon')
  cur = arcpy.InsertCursor(outfc)
  row = cur.newRow()
  cur.insertRow(row)
  del(row)
  del(cur)
  r = arcpy.CheckGeometry_management(outfc,'in_memory\\outtable')
  print r.getMessages()



Я запускаю його і отримую це, на що я б очікував

ПОПЕРЕДЖЕННЯ 000442: нульова геометрія при 0 в c: \ temp \ outfc.shp


1

Якщо ви працюєте над програмним забезпеченням ESRI, принаймні я можу говорити за ArcGIS 9.3, тоді shapefiles не підтримують нулі. Я зіткнувся з цією проблемою кілька тижнів тому і провів день, вивчаючи. Я вважав це посилання особливо яскравим http://forums.esri.com/Thread.asp?c=93&f=993&t=125464. Здається, єдиний спосіб підтримати нулі в ESRI formfiles - це використовувати бази даних геоданих (тоді файли shape стають класними класами. Я використовував файл бази даних геоданих). Щоб підтримати нулі, я в кінцевому підсумку створив базу даних геоданих та створив класи класів характеристик (інакше відомі як shapefiles) всередині файлу geodatabase (це буде підтримувати нулі) на відміну від створення файлу форм і потім імпортування його в базу даних геоданих (це не підтримує нулі) . Якщо я пам'ятаю правильно, ви також повинні чітко вказати у властивостях поля, що потрібно підтримувати нулі. Ось посилання, яке може допомогти Як створити клас функції у базі даних про геодані у ArcGIS 9.3 за допомогою Python?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.