Seçilen Özellikler aracından Katman Oluşturma: Özelliklerin listesi nasıl saklanır?


12

ArcGIS Desktop'ta, Seçili Özelliklerden Katman Oluştur adlı bir araç var . Bu aracı kullanarak, seçimi ArcMap'te bir katmana dönüştürebilirim.

Sanırım haritada gösterilecek özellikleri izole eden bir yere katıştırılmış bir "özellikler listesi" var.

Ben "özellikler listesi" listesi olarak wherebir tanım sorgusu bir yan tümcede depolanmış olacağını düşünürdüm objectids. Örneğin: where objectid in(123,456,789,...). Ancak, durum böyle değil.

Katmanda bir WHEREyan tümce veya tanım sorgusu yoksa, özellik listesi nasıl saklanır?


2
Menü öğesi ile coğrafi işlem aracı arasında büyük bir fark vardır. Konuştuğunuz şey eskidir. Katmanlarınızı oluşturmak için fidset'te depolanan verileri kullanabilirsiniz.
FelixIP

2
Bir Seçim Katmanı oluşturduğunuzda depolanan WHERE yan tümcesi olmadığından ve oluşturulduktan sonra, oluşturmak için kullanılan orijinal seçimi bulamayacağınızdan eminim. Son zamanlarda çok eski bir seçim katmanıyla uğraştığım ve oluşturmak için kullanılan özelliklerin orijinal seçimini bulduğum için bir cevap şeklinde yanlış olduğumu umuyorum.
Dan C

1
Fidset, katmanın özelliğidir. Bu ; seçim FID'lerini saklamak için ayrılmış dize.
FelixIP

Seçilen Özelliklerden Katman Oluştur DİNAMİK katman oluşturmaz. Ortaya çıkan katman hiç dinamik değil. Bir FIDset tabanlı. Kaynak verileri değiştirirseniz, FID'ler değişir ve seçim katmanınız bozulur. Bu bir nerede yan tümcesi depolayan bir Sorgu katmanı gibi bir şey değildir
jbalk

Yanıtlar:


14

Seçilen Özelliklerden Katman Oluştur DİNAMİK katman oluşturmaz . Ortaya çıkan katman hiç dinamik değil. Bir FIDset tabanlı.

Kaynak verileri değiştirirseniz, FID'ler değişir ve seçim katmanınız bozulur.

Seçim katmanında nerede deyimi yoktur. FIDset'e ('Seçili özelliklerden katman oluştur' kullanıldığında seçilen FID'ler) dayanmaktadır.

Kaynak verilere kayıt ekler veya bu verilerden kayıt kaldırırsanız, FID'lerin değişeceğini ve seçim katmanınızın yanlış kayıtlar göstereceğini unutmayın.

Seçim katmanını where yantümcesini depolayan ve dinamik olan bir sorgu katmanıyla karıştırıyorsunuz.

EDIT: Seçim katmanı için özelliklerin listesi bellekte saklanır. Seçim katmanı bozulduğunda orijinal seçimi kurtarmanın bir yolu olmadığından, geçici çalışma dışında seçim katmanlarını kullanmak kötü bir uygulamadır.

Seçim katmanındaki özelliklerin listesini bulmak için, bir kimlik listesi oluşturmak üzere SearchCursor da dahil olmak üzere birçok farklı yöntem kullanabilirsiniz.

Bunun gibi bir şey:

OIDlist = []
with arcpy.da.SearchCursor(layer, 'OBJECTID') as scur:
    for row in scur:
        OIDlist.append(row[0])

Tarafından yorumun itibaren crmackey :

FIDSet'i tanımlamak için yerleşik bir yol da vardır. Bu bir dizedir, ancak bir listeye dönüştürmek kolaydır:

OIDlist = map(int, arcpy.Describe(layer).FIDSet.split(';'))

1
Ayrıca tanımlamak için yerleşik bir yol var FIDSet. Bu bir dizedir, ancak bir listeye dönüştürmek kolaydır: OIDlist = map(int, arcpy.Describe(layer).FIDSet.split(';'))
crmackey


11

Anladığım en iyi yol Create Layer from Selected Features, bu referansla nasıl karşılaştığım. Özellikleri seçmek için geçici bir katman oluşturun

Geçici bir katman oluşturmak, orijinal veri kaynağını etkilemeden seçim yapma gibi şeyler yapmanızı sağlar. Bu katman ArcCatalog içeriğinde görünmez, çünkü bellekte oluşturulur ve diskte depolanan verilere referansta bulunur. Bu katmanlar, çalışma oturumunuzdaki diğer coğrafi işleme araçlarına girdi olarak kullanılabilir. Uygulamadan çıktıktan sonra bellek içi katmanlar kaldırılır.

Özellik Katmanı Yap aracı, Veri Yönetimi Araçları araç kutusundaki Katmanlar ve Tablo Görünümleri araç setindedir. Özellik Katmanı Yap aracını sağ tıklatın ve Aç'ı tıklatın veya aracı açmak için çift tıklatın.

Bu disk alanını okuyabilen mekanizma, "sonuç kümesine" nasıl erişileceğidir.

Ayrıca, daha önce de belirtildiği gibi ve Esri kapsamaktadır Seçili özelliklerle çalışmak ,

Bu örnekte, seçilen özelliklerden oluşturulan katman yalnızca geçici bir çalışma veri kümesi olarak yararlıdır (örneğin, bir coğrafi işleme modeline girdi olarak kullanım için). Yeni katman, seçilen özelliklerin FeatureID'lerinin (FID'lerinin) veya ObjectID'lerinin (OID'lerinin) bir listesini yapar ve orijinal veri kaynağı güncellendiğinde veya değiştirildiğinde geçersiz olur .

Ayrıca, burada genel bir okuma olarak daha fazla tartışma, Bellek içi çalışma alanını kullanma, çalışma alanı ile ilgili in_memory. Bu, yalnızca ilgilendiğinizde ek bilgi amaçlıdır.


2

Benim tahminim, gelen katman Create Layer From Selected Featuresbir WHEREcümleye veya mantıksal bir koşula dayanmıyor, çünkü seçim kümesi mantık içermeden oluşturulabilir.

Örneğin , ana özelliği kullanarak , önceki Nitelikler / Yerlere Göre Seç seçeneğinden bir kutu sürükleyerek seçim menüsündeki özellikleri manuel olarak ekleyebilir / silebilirsiniz .

Tahminimce, seçim kümesini ( IFeatureSelection), sonuç kümesini tanımlayan kurallardan ziyade (orijinal katmanın kimliklerinin kopyalarını içeren) kapsamlı bir sonuç kümesi olarak görüyorum. Bu nedenle, bağlı belgelerdeki, orijinal katmanın kimlikleri değişirse kimliklerin geçersiz olabileceği uyarısı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.