ArcCatalog, mekansal referansların özellik veri kümesi ile aynı sınıf koordinat sistemine sahip özellik sınıfı arasında eşleşme olmadığını söylüyor?


31

Coğrafi koordinat sistemi olarak GCS_WGS_1984'ü kullanan bir özellik veri setine sahibim. Birkaç özellik sınıfı içerir.

Bu özellik veri kümesi, gdb'nin kökünde birkaç özellik sınıfı içeren bir dosya coğrafi veritabanında bulunur. Bunlardan biri, GCS_WGS_1984'ü koordinat sistemi olarak da kullanan "puan" adı verilen bir özellik sınıfıdır.

Özellik sınıfını gdb'nin kök dizininden özellik veri setine sürüklemek için ArcCatalog kullanmanın önemsiz olacağını düşündüm, çünkü aynı koordinat sistemine sahipler. Ne yazık ki ArcGIS şunları söyleyen bir hata mesajı veriyor:

Failed to paste points
The spatial references do not match

Bu neden başarısız? Özellik sınıfının GCS'si ve özellik veri kümesi aynıysa, işe yaraması gerekmez mi? Bu durumun hem veri seti hem de sınıf için prj dosyasını dışa aktarmanın yanı sıra ikisini karşılaştırmak için bir diff aracı kullanarak iletişim kutusundaki durum olduğunu doğruladım. Onlar aynı.

Bir özellik sınıfının mekansal referansı koordinat sisteminden / projeksiyonundan farklı mı?

ArcCatalog'un her seferinde çökmesine neden olan sonuçları sürüklerken ctrl tuşunu basılı tutarak özellik sınıfını özellik veri setine kopyalamaya çalışmak (ESRI'da utanç).

Sanırım alternatif özellik sınıflarını hareket ettirmenin alternatif yollarını deneyebilirim. Veri kümesine CopyFeatures kullanın. Özellik sınıfından özellik veri kümesi içinde yeni bir özellik sınıfına projeksiyon mu?


Gdb dosyasını bir yere gönderebilir misiniz? Belki de büyükse, özelliklerin tümünü veya bir kısmını silin, boş özelliklerle bile çoğaltılabilir.
Kirk Kuykendall

4
ArcGIS ile karşılaştığım her küçük tuhaflığa koşmak için zamanım olsaydı, sık sık sadece onunla yaşamak ve bir sonraki en az geçici çözümü bulmak zorunda kalırım. Veri Yönetimi -> Özelliği Kopyala özelliğini yeni bir özellik sınıfına (temp adlı) kopyalamak, eski özellik sınıfını silmek, eski özelliklerle eşleştirmek için yeni özellik sınıfını yeniden adlandırmak için kullandım. ArcGIS kullanmak, yazılım testlerinde bir derece gerektirmemelidir. = (
mindless.panda

2
"yazılım testinde diplomaya ihtiyaç duymamalı
matt wilkie

bu sadece isimdir, eşleşebilirler, fakat eğer farklı bir isim varsa, bu mesajı gizler, görmezden gelin.
Bilmiyorsanız - sadece GIS

Yanıtlar:


21

Aynı koordinat sistemi her zaman değil, aynı koordinat sistemi. Bazı işlemlerin ve coğrafi işlem araçlarının, özellik sınıflarının ortak bir koordinat sistemini paylaşmayacağını düşündüğü durumlarla karşılaştım, çünkü projeksiyonun tanımlayıcı adı, parametreler aynı olmasına rağmen ("Yukon Albers" - "Albers - custom") farklılık gösteriyor. farklı ondalık konumlar (sahte kuzey 500000.00 vs 500000.0000).

Genelde yaptığım, Feature Dataset (ve F.class) koordinat sistemlerinin üstüne yerleştirilen standart .prj dosyamızla oluşturulduğundan emin olmak (CS'yi C:\path\to\ArcGIS\Desktop10.0\Coordinate Systemsdaha az tıklama ile kullanılabilir hale getirmek) ve / veya CS'yi bir ana özellik sınıfı şablonundan kopyalamak. her zaman el altında bir yerde saklanır.

Kısmen bu konuya yanıt olarak D:\s.gdb\_template, onlarla birlikte başka bir şey yapmadan önce tüm verilerimizi bir ilk adım filtresi olarak yönlendirdiğim boş bir özellik veri setine ( ) sahibim. Yaygın bir koordinat sistemi içerisinde bu aynı zamanda hassas ve uzamsal alanın vb. Aynı olmasını sağlar.

Güncelleme: Bir özellik özellik sınıfından Feature Dataset mekansal referans sistemini kopyalamak için, Andy'nin python, sadece 2 satır kullanmaya ilişkin cevabını görün . Bu benim için ArcCatalog 10.3'te işe yaradı. Biri almak için bir özellik sınıfı seçerek SR'yi tanımlamanın etkileşimli yöntemi işe yaramadı.


Güzel baskı adındaki veya belirtilen konumlardaki bu küçük değişiklikler, Farklı Kaydet seçeneğiyle dışa aktarılan .prj dosyasında bulunmaz mıydı? Öyleyse, neden farklı prj dosyaları hiçbir şey göstermiyor? X, y çözünürlüğündeki küçük farklılıklar da çatışmaya neden olabilir mi diye merak etmiştim.
mindless.panda

1
"Farklı Kaydet" ile oluşturulan .prj dosyası, dahili olarak depolananla tamamen aynı olmayabilir. Ortak mekansal çözünürlük vb. Sağlamak için özellik veri kümesi "filtresi" kullanıyorum.
matt wilkie

3
Buna bir ek faset daha ekleyeceğim: Bazen başka kaynaklardan gelen veri kümeleri, aslında M veya Z olmadıklarında M ve Z değerlerini içeren olarak üretilir. Eşleştirme, X / Y koordinat sistemlerinin gerçekte tam olarak eşleşmesine rağmen.
DPierce

16

Bu bir cevaptan çok bir açıklamadır.

Biz (Esri) koordinat referans sistemi adlarını ve değerlerini oldukça sıkı test ediyoruz. 'Eşittir' testi, 500000.00 ve 500000.000000'ü karşılaştırırken bir hata döndürmez, ancak biri gerçekten 500000.0 ve diğer 500000.00000005 olduğunda başarısız olabilir. Adlara takma ad ekleme üzerinde çalışıyoruz, böylece 'eşit' daha fazla geçecek.

Mindless.panda ve matt wilkie'nin dediği gibi, farklılıklar mekansal bir referansın diğer değerlerinde olabilir. Uzamsal bir referans, koordinat referans sistemini ve depolama / işleme değerlerini içerir. Depolama için: xy, z ve ölçü çözünürlüğü ve kapsamları. İşleme için: xy, z ve tolerans değerleri ölçülür. Bunlardaki herhangi bir fark, eşit olmayan bir hataya neden olabilir.


6
Cevabınız çok takdir edilmektedir. ArcGIS'te özellikle kullanıcıya bildirilenlerde hata işleme konusunda gerçekten bir şeyler görmek istiyorum. İstenirse daha ayrıntılı bilgi alma seçeneği ile daha bilgilendirici hatalara ihtiyaç duyulur. Tekrar yanıtlamak için zaman ayırdığınız için ESRI’ye teşekkür ederiz.
mindless.panda

2
Ben hataları hakkında daha fazla bilgi sunmak için teklif ikinci. Son iki hafta boyunca Error code: 999999: Error executing function. Description: This is a generic error for which the cause of the error does not have an appropriate error ID. bir dizi sorun nedeniyle aynı hatayı ( ) aldım . Bu, hatanın tekrarlanıp tekrarlanmadığını görmek için ikinci kez yaptığımı çalıştırmayı denemekten başka bir şey yapamadığım için çıldırtan bir mesajdır ya da pes edip başka bir yöntem (veya artan bir şekilde olan yazılımı) kullanın.
djq

9

İşte sorunu çözmek için yaptıklarım (ArcGIS 10.0'daki arcpy kullanarak) -

Bu, aşağıdakileri varsayar:

  • FGDB - C: \ gisdata \ Test.gdb
  • Özellik Sınıfı - C: \ gisdata \ Test.gdb \ bldg

Yollarınızı ve nesne adlarınızı kodda değiştirebilir ve ArcCatalog'daki python penceresine yapıştırabilirsiniz.

sr = arcpy.Describe(r'C:\gisdata\Test.gdb\bldg').spatialReference
arcpy.CreateFeatureDataset_management(r'C:\gisdata\Test.gdb', 'MyFeatureDataset', sr)

Özellik veri kümesi oluşturulduktan sonra, özellik sınıflarını sürükleyip bırakabilirsiniz.


1
Teşekkür ederim! Bu, bugün benim için çalıştı, yeni özellik veri kümesi koordinat sistemini tanımlamak için etkileşimli aracını kullanarak mevcut bir özellik sınıfını seçerek çalışmadı (v10.3).
matt wilkie

7

Bu sorun beni öldürüyordu! Bir CAD dosyasından bir çok özellik sınıfını kaydettikten sonra, koordinat sistemlerini tanımlamak için birkaç kez denedim, sonra onları özellik veri kümeleri halinde organize ettim. Hem gerekli tüm sınıfları hem de f. veri kümelerini resmi WGS_1984_UTM_42N projeksiyonundan ESRI'dan tanımlamayı ve veri seti için projeksiyonu ayarlamayı ve ardından projeksiyonu Tanımlama Projeksiyonu aracını kullanarak bu sınıfları ithal etmeyi denedim. Hiçbir sınıf bir camın içini kapatamaz veya 1'i alır, diğerleri yapmaz.

İçinde üzerinde @Matt Wilkie'ye Çok teşekkürler bu yazı , Özellik Sınıfı için Özellik Sınıfı aracı sorununu çözmüş görünüyor. Söz konusu f.class için koordinat sistemini henüz tanımlamamış olsam bile, fclass'leri istenen veri kümesine başarıyla içe aktarır.

Ek olarak, Özellik Sınıfından Coğrafi Veritabanına (çoklu) komut dosyası, fclass'leri toplu olarak bir f.dataset kümesine taşımak için harika çalıştığını, ancak Geodatabase'den diğerine (aynı coğrafi veritabanında değil. . Bunun nedeni, betiğin kopyalandığında sınıfları otomatik olarak yeniden adlandırmamasıdır (ya da operatörden Özellik Sınıfından Özellik Sınıfına kadar yeni bir isim isteyin). Bununla birlikte, başkalarının da belirttiği gibi (yukarıda bağlanmış aynı iplik), verilen hata genel 999999'dur.


4

Bir GeoDatabase'deki bir özellik sınıfını bir özellik veri kümesine taşımak istediğinizde bu sorunu yaşadım. Özellik Veri setimi yaptım ve aynı koordinat sistemine sahip olmasını sağladım. Tekrar tekrar " Xyz yapıştırılamadı . Mekansal referanslar eşleşmiyor" buldum Çevremdeki en hızlı çalışma, yeni oluşturulan veri setimdeki aynı mekansal referansı, içine almak istediğim özellik sınıfından almaktı. "Yeni Özellik Veri Kümesi Yarat" sihirbazının ikinci adımında.

Mekansal referansların neden farklı olduğunu bilmiyorum.


Merhaba, @Alan! Deneyiminizi paylaştığınız için teşekkür ederiz ve sitemize hoş geldiniz.
whuber

1
Merhaba Alan, yeni özellik veri kümesi / sınıf sihirbazı "ithalat koordinat sistemi" kullanıldığında her zaman tüm depolama / işleme değerlerini çekmiyor. Tamir etmeye çalışıyoruz. Ben düşünüyorum bu yaşamaya devam edip şeydir.
mkennedy

1
Bu sorunu görüyorum - Özellik Veri Kümesini oluşturup alma mekanizmasını kullanıp özellik sınıfını seçsem bile, özellik sınıfını yukarıda belirtilen hata olmadan yeni oluşturulan Özellik Veri Kümesine sürükleyemiyorum / kopyalayamıyorum.
mindless.panda

3

ESRI'ye iletilen mesajlardan birinin, bu hata meydana geldiğinde hata ayıklama bilgisinde daha spesifik parametre farklılıkları sağlamak olduğunu düşünüyorum. Ben de bu hatayla, CBS kullanıcılarının çoğunun yaptığı gibi, mekansal referans sistemleri ve projeksiyonları dikkatle kontrol ettikten sonra bile karşılaştım.

Alma veya kopyalama mekanizmaları kullanıldığında ortaya çıkan hata mesajlarını gidermek için ArcToolbox Kopyalama Özelliklerini kullanma prosedürünü buldum. Burada, özellik sınıfını özellik veri kümesine dahil etmeden önce referans veya projeksiyon farklarını doğru bir şekilde çözmek için Özellikleri Kopyala araç kutusu prosedürüne bağlıyız.

Veri kümesi oluşturma zamanında tanımlanan bir projeksiyon sistemi ile özellik veri kümesini oluşturmayı ve ardından ArcToolbox projeksiyon aracını aynı projeksiyonla kullanarak özellik sınıflarını özellik veri kümesine yansıtmayı denedim ve içe aktarmayı denediğimde burada açıklanan hatayı aldım veya özellik sınıfını veri kümesine kopyalayın.

ArcMap’te veri kullandığınızda bu koordinat sistemi sorunları maskelenir. ArcMap anında projeksiyon gerçekleştirdiğinden, kullanıcının farkında olmadan bir ArcMap haritasına her biri farklı çıkıntılara sahip olan çoklu özellik sınıfları eklenebilir. ArcMap, farklı koordinat referans sistemleri hakkında uyarır.


1

TAMAM. Bir çözüm buldum! GDB'deki Özellikler Veri Kümesinde farenin sağ düğmesini tıklayın ve İçe Aktar'ı tıklayın. İhtiyacınız olan özellikleri seçin, ardından Tamam.


0

Veri Yönetimi Araçları / Özellikleri altındaki Kopyalama Özellikleri aracını kullanmayı deneyin. Aksi takdirde ne yaparsam yapayım hata almaya devam ettim.


-1

ArcMap’e getirmeyi ve katmanları GCS_WGS_1984 olarak ayarlamayı ve ardından tüm katmanlarınızı bir dosya coğrafi veritabanına aktarmayı denediniz mi?

Farklı projeksiyonda bir veya birkaç katmanınız varsa, bunları dışa aktarabilirsiniz, ancak veri çerçevesini GCS_WGS_1984 olarak değiştirebilirsiniz.

ArcGIS 10'da bunun için emin değilim. Onlara henüz sahip değilim ama 9.3.1 kullanıyorum.


1
Lütfen 1 ve 2 numaralı noktaları açıklığa kavuşturur musunuz? Bunlar doğru görünmüyor.
Aaron
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.