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


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.