El ile derecelendirilmiş verileri ArcGIS for Desktop'ta aralık dışında mı sınıflandırıyorsunuz?


13

Aşağıda gösterilen dereceli renklerle sembolize edilmiş değerlerle ızgaraları temsil eden iki şekil dosyam var:

orijinal

İki şekil dosyasının benzer veri aralıklarını kapsadığını, ancak bu verilerdeki aralıklara biraz farklı renkler atadığını görebilirsiniz. İki şekil dosyasının her birindeki aralıkları, aynı aralıklar için aynı renkleri kullanarak, semboller arasında daha kolay karşılaştırma yapılmasını ve tek bir göstergenin kullanılmasına izin vererek sembolize etmek istiyorum.

Ancak, aralıkları manuel aralıklarla sınıflandırmaya çalıştığımda, ArcGIS en üst aralıkta olması gereken şeyi veri kümesinden minimum değeri de dahil etmeye zorlar. Bunu aşağıdaki sol veri çerçevesinin "-81.64 - 10.00" aralığında görebilirsiniz. Bu, tüm katmanı bu renkle sembolize edilmeye zorlar. Temel olarak, ArcGIS veri kümesindeki minimum değerin aralıklardan birinde bir değer olarak kullanılmasını gerektirir.

Yeni Zaman Aralıkları

Bu özelliği atlatmanın bir yolu var mı?


Bu sorunu yaşadığımı da hatırlıyorum, ancak tam olarak nasıl çözdüğümü hatırlayamıyorum. "Eşit aralık" olarak sınıflandırır ve değerlere çift tıklarsanız, bunları bu şekilde değiştirebilir misiniz?
GISKid

@GISKid çift tıkladığımda, sınıflandırma maalesef "Manuel" e dönüyor.
hfisch

Histogramdaki değerleri ayarlamaya ne dersiniz?
GISKid

@GISKid değerleri, minimum değerin altına sürüklerseniz minimum değere geri dönün.
hfisch

2
Bunun en iyi ve en basit cevabının gis.stackexchange.com/a/136497 olduğunu düşünüyorum - ilk (ve şu anda kabul edilen) cevap benim beğenme için çok uzun.
PolyGeo

Yanıtlar:


12

ArcMap olmaya çalıştığında kesinlikle büyük bir acıdır, um, gerçekten istemediğinizde bile yardımcı olur.

Bulduğum bir geçici çözüm, yeni bir geçici veri kümesi oluşturmak ve çıktıda ihtiyaç duyacağınızı bildiğiniz minimum ve maksimum değerlerle birkaç nokta eklemek - tüm aralığı kapsadığınızdan emin olun.

Sembolojinizi bu sahte veri kümesine göre oluşturun ve bu sembolojiyi bir katman dosyasına kaydedin :

resim açıklamasını buraya girin

... sonra * .lyr dosyasından sembolojiyi gerçek veri kümenize aktarın:

resim açıklamasını buraya girin


1
Bu çözüm benimkinden daha az acayip. Cevabınıza geçiyorum.
hfisch

Teşekkürler, arcmap'ın size yeterince özenle fırlattığı tüm diyalogları okursanız bir cazibe gibi çalışır.
Luuklag

6

@ChrisW dedi:

Bildiğim ve kanıt bulabildiğince, verilerdeki minimum değerin altında bir sınıflandırma aralığı ayarlayamazsınız.

Bu beni düşündürdü ve aslında sınıflandırma aralığını minimum değerin altına ayarlamanın bir yolunu buldum. Orijinal sorunum, verilerdeki minimum değeri içermesi için en düşük sınıflandırma aralığının gerekli olduğu gerçeğine dayanıyordu.

Ancak, kullanılan diğer sınıflandırma aralıklarında böyle bir kısıtlama yoktur. Bu nedenle, iki (veya daha fazla) sınıflandırma aralığını verilerdeki minimum değerin altına düşmeye zorlayabilir . Bunlardan biri tercih edilen minimum sınıflandırma aralığını temsil ederken, diğeri minimum değeri içermek için bir sahte aralık olarak işlev görecektir.


İşte sınıflandırma için kullandığım başlangıç ​​noktası. Dört veri çerçevesindeki katmanların her biri, diğer katmanların veri aralıklarına bakılmaksızın 10 ft tanımlı bir aralık kullanılarak sınıflandırılmıştır.

Başlangıç ​​noktası

Dört veri çerçevesinden herhangi birindeki maksimum sınıflandırma aralığı "0.01 ila 10.00" dır ve minimum sınıflandırma aralığı "-110.62 ila -110.00" dır (ideal olarak "-119.00 ila -110.00" olacaktır). 10 ayak aralığını korumaya çalıştığım için, bu toplam 13 aralığa dönüşüyor.


Genel efsanem için kaynak olarak sol üst veri çerçevesini kullanıyorum. Katman Özelliklerini açıp Sınıflandıracağım. 13 aralığın görünür olmasını istediğim için, sahte bir aralığa sahip olmak için 14 aralık seçmem gerekiyor. Bunu yöntem olarak Manual seçerek ve 14 sınıf oluşturarak yaparım.

Adım 1a

Aralıklar geçerli durumlarında ayarlandığında (en büyük değerler en üstte olacak şekilde), aralığa girilen değerde yapılacak herhangi bir değişikliğin listenin en altındaki aralık dışında hiçbir etkisi olmayacaktır. @ChrisW bunun bir hata değil, ArcGIS'in kesme değerleri atama özelliğinin bir özelliği olduğuna dikkat çekti. Manuel yöntemi seçtikten sonra ancak aralıklarda herhangi bir değişiklik yapmadan önce Katman Özellikleri penceresi:

Adım 1b


Bu sorunu çözmek için, katmanın sıralamasını geçici olarak tersine çeviriyorum. Bu noktada, en düşük aralıklar en üstte iken en yüksek aralıklar en alttadır.

Adım 2a

Şimdi, aralık listesinin en altına (en yüksek aralığın görüntülendiği yerde) kaydırır ve aşağıdan yukarıya doğru aralıkları tanımlamaya başlarsam, ArcGIS tanımladığım aralıkları hatırlayacaktır:

Adım 2b

Bu görüntüde, en yüksek değer (10.00) ile başlayıp aşağı doğru çalışarak 14 aralığın 5'inde üst değeri tanımladım.


Listenin en üstüne geldiğimde ve 14. aralığımı düzenlediğimde, minimum değeri yine de katmandaki minimum değer olarak tanımlanacaktır, çünkü altından bir değer çekmek için altında başka bir aralık yoktur:

Adım 3a

Yine de bu önemli değil, çünkü daha önce bahsettiğim kukla aralık. Bu noktada, katmanın sıralamasını bir kez daha tersine çeviriyorum, böylece en yüksek aralıklar tekrar üstte. Aşağıdaki resim, sol üst veri çerçevesi için güncellenmiş göstergeyi göstermektedir; bu, artık 14. veri aralığı da dahil olmak üzere dört veri çerçevesinin tümü için uygun aralıkları yansıtır :

Adım 3b


Bir sonraki adım, bu değişiklikleri veri çerçevelerinin geri kalanına yaymaktır. Sembolojiyi diğer veri çerçevelerine aktarmaya çalıştığımda bazı sorunlar açıktır:

Adım 4a

@ChrisW'nin işaret ettiği gibi, bu, tüm veri çerçevelerinde mutlak minimum değere sahip olmayan bir katmanla başlama kararımdan kaynaklanıyor. Veri çerçevesinin, orijinal veri çerçevesindeki aralıkların altına düşen aralıklar göstermeyeceği anlaşılıyor.

Yaptığım gibi bir katmanla başlıyorsanız, bunun için bulduğum en iyi çözüm, dört veri çerçevesinin her biri için yukarıda tartıştığım adımları tekrarlamaktır; 14 sınıfı manuel olarak tanımlamak, sınıfların sıralamasını tersine çevirmek, her aralığın en üstünü yeniden tanımlamak, ardından en yüksek aralıkları en üste yerleştirmek için sıralamayı geri döndürmek.

En basit çözüm, sınıflandırma sürecine en küçük değere sahip katman ile başlamaktır. Daha sonra Sembolojiyi İçe Aktar seçeneği diğer veri çerçeveleri için düzgün bir şekilde kullanılabilir.

Adım 4b


Son olarak, efsanelerden üçünü silebilir ve kalan efsanedeki kukla aralığı gizleyebilir veya grafiklere dönüştürebilir ve kukla aralığı silebilirim.

Bitiş Noktası


Bir şeyi halledebildiğine sevindim. Alıntıladığınız yanlışlığı düzeltmek için cevabımı düzenledim (neden bunu söylediğimden emin değilim - orijinal görüntüleriniz yapabileceğinizi gösterdi ).
Chris W

Aslında, bunu kopyalamakta sorun yaşıyorum. Cevabı biraz daha kullanışlı hale getirmek için, bu aralıkları minimum değerin altında yarattığınız şekilde düzenleyebilir misiniz?
Chris W

@ChrisW Süreci büyük ölçüde genişlettim. Hala mantıklı değilse bana bildirin!
hfisch

2
Güncelleme için teşekkürler. Sorunu anladım - araları tanımlamanın, hata olarak sorguladığınız şeyle ilgili olan sınıflandırma ve semboloji iletişim kutuları arasında ele alınmasında önemli bir fark var. Temel olarak kesme değerlerini otomatik olarak sıralar, ancak min değerinin altındaki en düşük kesme her zaman min değerine bağlıdır ve üstte (veya sıralamaya bağlı olarak altta) görünür. FYI, toplam bir sayı belirleyemeseniz de, histograma sağ tıklayarak Manuel'e sınıf ekleyebilir veya kaldırabilirsiniz.
Chris W

1
Sembolojiyi diğer veri çerçevelerine uyguladığım kadarıyla , cevabımda belirtildiği gibi, ilk semboloji için bunu kullanarak en düşük değere (-110.62) sahip verilerle başlamayı deneyin . Üçüncü-son görüntünüzde kukla sınıf min değerinin dörtü için hala -61.01 olduğunu düşünüyorum, bu yüzden bunun için bir sınıf olmasına rağmen altında hiçbir şey oluşmadığına inanıyorum. En düşük ile başlarsanız ve min değeri daha yüksekse, sembolojiyi diğer veri kümelerine uyguladığınızda veri min'ine minmboloji min'i dahil edeceğini veya getireceğini düşünüyorum.
Chris W

5

Ben de aynı sorunla karşılaştım, sanırım .... Doğru anlarsam, iki (veya daha fazla) veri setiniz vardı ve karşılaştırmalar yapılabilmesi için veri kümesi ölçek aralıklarını almanız gerekiyor.

Ben çözdüm:

  1. İlk veri kümesini görünmesini istediğiniz şekilde oluşturun. İdeal olarak en büyük veri aralığı ile semboller ikinci (daha küçük aralıklı) veri kümesine daha kolay kopyalanabilir.

resim açıklamasını buraya girin

  1. İkinci veri kümenizi oluşturun ancak henüz herhangi bir semboloji hakkında endişelenmeyin. İkinci veri kümeleri Katman Özellikleri> Semboloji sekmesinde, ilk veri kümesiyle aynı sınıflandırma türünü seçin, bu örnek için Kategoriler> Benzersiz Değerler kullanıyorum, ardından Tüm Değerleri Ekle düğmesini tıklatın.

resim açıklamasını buraya girin

  1. Değerleri, ilk veri kümesinde kullanılan karşılık gelen aralıklara düşecek şekilde gruplayın. Belirli bir kategori için tüm değerleri seçin ve sağ tıklayın ve Gruplandır'ı seçin . En üstteki iki kategori zaten aşağıdaki resimde gruplandırılmış, vurgulanan dört val üçüncü bir gruba çekilmek üzere.

resim açıklamasını buraya girin

  1. Bu aşamada kategorileri yeniden etiketlemeyi daha kolay buluyorum, böylece takibi daha kolay. Bu noktada, yedi kategoriden beşini görebilirsiniz.

resim açıklamasını buraya girin

  1. Son olarak (neredeyse) ve bu sorunun temelini, ikinci veri kümesinin veri aralığının dışında bulunan boş kategorilere eklemek. Gelen Katman Özellikleri> Simgeler sekmesine tıklayın Ekleme Değerler gerektiği gibi veri aralığından üstünde ve altında gerekli kategorileri ile düğmesi ve olarak doldurulur.

resim açıklamasını buraya girin

  1. Son olarak yeni boş kategorileri, ilk veri kümesine karşılık gelecek şekilde yeniden etiketleyin ve ardından her kategoriyi, ilklerle eşleşecek şekilde yeniden renklendirin.

resim açıklamasını buraya girin

Bu biraz fazla basitleştirilmiş veya hatta basit yanlış / kötü uygulama varsa üzgünüm. GIS Stack Exchange'in uzun süredir kullanıyorum ve katkıda bulunmaya başladığım zamanı düşündüm, bu yüzden bu benim ilk yazım!


2
Üzgünüz, OP'nin Mezun Veriler için olduğunu fark ettim ve hızlı bir kontrolün ardından çözümümün geçersiz olduğunu anlayın. Bir dahaki sefere daha yakından okuyacağım ....
Nige

4
  1. İstediğiniz sınıf sayısını seçin.
  2. Sembollere sağ tıklayın ve save class breaks
  3. bu, herhangi bir metin düzenleyicide açıp düzenleyebileceğiniz bir xml dosyasını kaydeder
  4. xml dosyasında istediğiniz sınıf sonlarını düzenleyin ve kaydedin
  5. sembolleri tekrar sağ tıklayın ve yeni düzenlenen sınıf tatili dosyasını içe aktarın

YAPILAN


3

Da sınıflandırma benzer aralıkları kullanan veri aralığı paylaşmaz. Buradaki çözümün, gerçek sınıflandırmada değil, efsane ve renk atamalarında çözülmesi olduğunu düşünüyorum.

Sol alt sonucunuzla başlayın ve bu göstergeyi bir grafiğe dönüştürün. İstediğiniz aralıkları almak için metni düzenleyin. Diğer tüm resimlerinizin 10 birim menzili olduğunu fark ettim, ancak bu 20 tane yapıyor ve çakışıyor. Örneğin, görüntülerin üçünde -49,99 ila -40,00, ancak sol altta -49,99 ila -60,00 ve bir sonraki sınıf -59,99 ila -70,00 arasındadır. Görüntüler aynı zamanda zıt aralıklardır - yani üçü solda daha düşük değerken, sol altta sağda daha düşük değerdir (bu benim için çok daha doğal bir şekilde okunur , soldan sağa değerler değilse sayıları artırır ). Belki sadece manuel metin düzenlemesi yerine biraz zaman kazanmak için bu sorunların çözülmesi gerekir.

Aralıklı ve istediğiniz renk rampalı bir efsaneye sahip olduğunuzda, ilk iki katmanınıza (zaten doğru bir şekilde sınıflandırılmış) geri dönebilir ve her bir aralığın renk yamasını, göstergedeki aralık için karar verdiğiniz renge uyacak şekilde manuel olarak düzenleyebilirsiniz. . İki katman kendi efsanelerini göstermeyeceğinden, içlerinde aralığın aslında -89.99 ila -80.00, diğerinin -81.64 ila -80.00 olması önemli olmayacak çünkü ikisi de aynı renge sahip olacak .

Bununla birlikte, bunun her iki veri kümesinin de aynı aralıkta olduğunu ima edeceğini unutmayın. Aslında, her biri yalnızca bir haritada (en yüksek ve en düşük) kullanılan iki renk yaması olacak gibi görünüyor. Her haritaya, mutlak veri aralığını veren bir not koymak isteyebilirsiniz. Ayrıca aralıklar arasında '-' yerine '-' kullanırdım, çünkü negatif değerlerle okumak biraz kafa karıştırıcı.


Alternatif çözüm:

Bildiğim ve delil bulabildiğim kadarıyla, asgari değerinizle başlayan bir sınıfa sahip olmalısınız. Veri aralığınızın üstüne veya altına sınıfları (boş olanlar bile) manuel olarak ekleyebilirsiniz, ancak bir sınıfın minimum değerden başlaması gerekir.

Bu nedenle, tüm rasterlerin en düşük / minimum değerini içeren raster kullanarak sembolojinizi ayarlayın. Bunları sembolize edin. Daha sonra sınıf etiketini düzenleyebilirsiniz istediğinizi söylemek . Dolayısıyla, en düşük değeriniz 0,4 olsaydı, etiketi 0 olarak değiştirmeye devam edebilirsiniz.

Bunu yaptıktan ve istediğiniz renk rampası ile ayarladıktan sonra, sembolojinin bir lyr dosyasını kaydedin. Daha sonra diğer rasterlerinizi açıp aynı sembolojiyi uygulayabilmelisiniz. Diğer rasterlerin hepsi daha yüksek değerlere sahip olacağından, doğru bir şekilde sınıflandırmalı ve sadece minimum değerin kendisi artacaktır (veya belki de içine hiçbir şey düşmezse sınıf düşecektir). Bu, semboloji ile devam etmiyorsa, sınıf etiketini gerçek değer yerine sınıf tabanına değiştirebilirsiniz.


Aslında .lyr adımını atlayabilir ve bir raster'ı istediğiniz gibi (aralıklar, renkler vb.) Sınıflandırabilir ve daha sonra bunu diğer tüm sıralayıcılarınıza uygulamak için içe aktarma sembolojisi işlevini kullanabilirsiniz. Katman Özellikleri'ni açın, Semboloji sekmesini seçin, sağ üstteki Klasör Simgesi'ni seçin (üzerine geldiğinizde İçe Aktar'ı gösterir) - ve sonra taklit etmek istediğiniz rasteri seçin.
JWallace

@JWallace True, diğer rasterlerinizin aynı harita belgesine zaten yüklenmiş olması şartıyla (muhtemelen aynı veri çerçevesi - sembolojiyi farklı birinden içe aktarmanıza izin verip vermeyeceğini hatırlayamazsanız) ve semboloji sadece mxd'de bulunur (ve bazı şeyleri değiştirirseniz yedeklemesini kaydedebilirsiniz). Buradaki adımları kapsayan grafik bir cevabım var .
Chris W

Sol alt sonuç için garip birimlerde iyi yakalama. Bence bu, aralıkları manuel olarak tanımlama girişimlerimin bir parçasıydı ve bunları ters sırada tanımladım. '-' yerine 'to' kullanımı da iyi bir yöntemdir. Orijinal çözümünüzle ilgili sorunum, renklendirme ve etiketleme ile çok sayıda manuel çalışma gerektirmesi ve bu rakamlardan bir dizi oluşturmam gerekiyor. Alternatif çözümünüz bana bazı fikirler verdi. Sanırım biraz daha zarif hale getirmenin ve minimum değerdeki sorunları ortadan kaldırmanın bir yolunu buldum.
hfisch

3

Benim için daha kolay ama aynı zamanda daha kirli bir çözüm. Orijinal verilerinizin bir yedeğini oluşturmayı unutmayın.

  1. Özellik Tablosunu Açın ve Düzenlemeye Başlayın
  2. Sınıflandırmanızın temel almasını istediğiniz minimum ve maksimum değerler dahil edilecek şekilde iki değeri el ile düzenleyin (orijinal değerleri unutmayın)
  3. Düzenlemeyi Kaydet ve Durdur
  4. Yeni ekstremaya göre sınıflandırın
  5. Baştan başlayın ve değiştirilen değerleri manuel olarak orijinal değerlerle değiştirin
  6. Mevcut sınıflandırma etkilenmeyecek

2

Bunun özellik efsanesi ile ilgili olduğuna inanıyorum ancak rasterler değil. Bu rasters hakkında ise benim önerim dikkate almayın. Genellikle bunları kullanıyorum:

  • 2 (veya daha fazla şekil dosyasını) ÇOCUKLARI bir araya getirin, buna AİLE diyelim
  • AİLE için efsane oluştur
  • AİLE'den her ÇOCUK için ithalat sembolojisi

Umarım yardımcı olur, FP


Sadece JWallace
FelixIP

2

Aşağıdaki geçici çözümü yaptım. Bir XML belgesinde kendi sınıf sonlarımı oluşturdum ve her iki katmanın sınıflandırılmış sembolojisine yükledim.

  1. Bir sınıf sonları-XML-belgesi şablonu almak için: katman özelliklerinde sınıflandırma aralığını sağ tıklayın ve sonra "sınıf sonlarını kaydet".
  2. XML belgesini düzenle: XML belgesindeki sınıfların sonlarını girin, veri kümelerinizin aralığı dışında kalan sayıları da girebilirsiniz.
  3. XML sınıfı sonlarını yükle: şablonu kaydettiğinizle aynı menü (bkz. 1), "sınıf sonlarını yükle" yi tıklayın

    Adım 1 ve 3

Adım 2


1
Hangi ArcMap sürümü? V10.6'da
matt wilkie

@mattwilkie Bu bir sürüm sorunu değil, veri türü. Vektör verileri için bir semboloji iletişim kutusuna bakıyorsunuz ve bunun gibi sınıf sonlarını kaydetmek yalnızca tarama verileri için kullanılabilir. Bu cevap temelde Craig'leri kopyalar, ancak illüstrasyonlarla.
Chris W

1

Alternatif bir yol, her katmandaki tüm değerleri tek bir katmanda birleştirmektir, bu şekilde katmandaki minimum ve maksimum değerleri elde edersiniz.

Çizim:
1. Tüm katmanlardaki değerleri bir excel sayfasında tek sütuna (All_Vals olarak adlandıralım) birleştirin

  1. All_Vals sütununun yanına X ve Y olarak adlandırılan iki yeni sütun ekleyin ve bunları sıfırlarla doldurun.

  2. Arcmap'te excel sayfasını bir tablo olarak ekleyin ve display xy data komutunu / aracını kullanarak bir nokta özelliği sınıfı oluşturmak için kullanın, ardından olay katmanını bir shapefile dosyasına (NB_Point olarak adlandıracağım) dışa aktarın ve veri çerçevesine ekleyin.

4. NB_Point şekil dosyasını katmanlarınızın özellik sınıfı türüne dönüştürün, örneğin, özellik katmanınızın türü çokgen ise, NB_Point şekil dosyasından çokgen özellik sınıfı oluşturmak için arabellek aracını kullanın (NB_polygon olarak adlandıralım).

  1. Şimdi yapmanız gereken tek şey, son katman NB_polygon'u sağ tıklamak ve doğal sonlar sınıflandırmasını kullanarak dereceli renk sembolojisini uygulamak, her biri için içe aktarma katmanı sembolojisi yardımcı programını kullanırken bir .lyr dosyasına dışa aktarmaktır. orijinal katmanları.

Bu yardımcı olur ve herhangi bir yanlış yazım için üzgünüm.

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.