r.mapcalcgrass - Bulutta Çevrimiçi

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen r.mapcalcgrass komutudur.

Program:

ADI


r.mapcalc - Raster harita hesaplayıcısı.

ANAHTAR KELİMELER


raster, cebir

SİNOPSİS


r.mapcalc
r.mapcalc --yardım et
r.mapcalc [-s] [ifade=dizi] [dosya=isim] [tohum=tamsayı] [--üzerine]
[--yardım et] [--gereksiz sözlerle dolu] [--sessiz] [--ui]

Bayraklar:
-s
Rastgele tohum oluştur (sonuç deterministik değildir)

--üzerine yaz
Çıktı dosyalarının mevcut dosyaların üzerine yazmasına izin ver

--yardım et
Kullanım özetini yazdır

--ayrıntılı
Ayrıntılı modül çıkışı

--sessizlik
Sessiz modül çıkışı

--ui
GUI iletişim kutusunu başlatmaya zorla

Parametreler:
ifade=dizi
Değerlendirilecek ifade

dosya=isim
Değerlendirilecek ifadeyi/ifadeleri içeren dosya

tohum=tamsayı
Rand() işlevi için tohum

TANIM


r.mapcalc Raster harita katmanlarında aritmetik gerçekleştirir. Yeni raster harita katmanları oluşturulabilir
mevcut raster harita katmanlarını, tamsayıyı veya kayan noktayı içeren aritmetik ifadelerdir
nokta sabitleri ve fonksiyonlar.

Programı kullanım
r.mapcalc ifade şu şekildedir:

sonuç = ifade

nerede sonuç hesaplamanın sonucunu içeren taramalı harita katmanının adıdır
ve ifade mevcut raster harita katmanlarını içeren herhangi bir yasal aritmetik ifadedir
(dışında sonuç kendisi), tam sayı veya kayan nokta sabitleri ve bilinen işlevler
hesap makinesi. İfadede parantezlere izin verilir ve herhangi bir derinliğe iç içe yerleştirilebilirler.
sonuç kullanıcının mevcut harita setinde oluşturulacaktır.

As ifade= ilk seçenektir, varsayılandır. Bu şu anlama geliyor:
ifade alıntılandığı ve bir boşluk bırakıldığı sürece komut satırında ifade mümkündür
ilkinden önce dahil edilir = imza. Örnek ('foo' ortaya çıkan haritadır):
r.mapcalc "foo = 1"
ya da alışveriş sepetinize tıklayın:
r.mapcalc 'foo = 1'
Alıntı yapılmayan bir ifade (yani birden fazla bağımsız değişkene bölünmüş) işe yaramaz veya atlanmaz
= işaretinden önceki boşluk:
r.mapcalc 'foo=1'
Üzgünüm, geçerli bir parametre değil
Komutu dosyadan okumak için file= öğesini açıkça kullanın, örneğin:
r.mapcalc dosyası=dosya
ya da alışveriş sepetinize tıklayın:
r.mapcalc dosyası=- < dosya
ya da alışveriş sepetinize tıklayın:
r.mapcalc dosyası=- <
fo = 1
EOF

Girilen formül r.mapcalc kullanıcı tarafından hem kaydedilir sonuç harita başlığı
(kategori dosyasında görünen sonuç) ve geçmiş dosyasında sonuç.

Bazı karakterlerin komut kabuğu için özel anlamı vardır. Kullanıcı girdi giriyorsa
için r.mapcalc komut satırında ifadeler tek tırnak içine alınmalıdır.
Aşağıdaki NOTLAR'a bakın.

Operatörler ve sipariş of öncelik
Aşağıdaki operatörler desteklenir:
Operatör Anlamı Tip Öncelik
-------------------------------------------------- ------------
- olumsuzluk Aritmetik 12
~ birinin tamamlayıcısı Bitsel 12
! Mantıksal değil 12
^ Üs Aritmetik 11
% modül Aritmetik 10
/ bölüm Aritmetik 10
* çarpma aritmetiği 10
+ toplama Aritmetik 9
- çıkarma Aritmetik 9
<< sola kaydırma Bitsel 8
>> sağa kaydırma Bitsel 8
>>> sağa kaydırma (işaretsiz) Bitsel 8
> Mantıksal 7'den büyük
>= büyük veya eşittir Mantıksal 7
< Mantıksal 7'den az
<= küçük veya eşit Mantıksal 7
== eşit Mantıksal 6
!= eşit değil Mantıksal 6
& bitsel ve Bitsel 5
| bitsel veya Bitsel 4
&& mantıksal ve Mantıksal 3
&&& mantıksal ve[1] Mantıksal 3
|| mantıksal veya Mantıksal 2
||| mantıksal veya[1] Mantıksal 2
?: koşullu Mantıksal 1
(modül bölmeden kalandır)

[1] &&& ve ||| operatörler boş değerleri diğer operatörlerden farklı şekilde işler. Bkz.
başlıklı bölüm NULL destek Daha fazla ayrıntı için aşağıda.

Operatörler soldan sağa doğru uygulanır ve daha yüksek önceliğe sahip olanlar uygulanır
daha düşük önceliğe sahip olanlardan önce. 0'a bölme ve modülün 0'a bölünmesi kabul edilebilir ve
NULL sonuç ver. Mantıksal operatörler karşılaştırma doğruysa 1 sonuç verir, 0
aksi takdirde.

Raster harita tabaka isimleri
İfadede sayı, operatör veya fonksiyon adı olmayan herhangi bir şey alınır.
raster harita katmanı adı olsun. Örnekler:

yükseklik
x3
3d.onun

Çoğu GRASS raster harita katmanı bu adlandırma kuralına uygundur. Ancak, eğer bir raster harita katmanı
Yukarıdaki kurala aykırı bir isim varsa alıntı yapılmalıdır. Örneğin,
ifade

x = ab

şu şekilde yorumlanır: x eşittir a eksi b, halbuki

x = "ab"

şu şekilde yorumlanır: x, adı verilen raster harita katmanına eşittir ab

Ayrıca

X = 3107

Yaratacaktı x 3107 numarasıyla doldurulurken

x = "3107"

raster harita katmanını kopyalar 3107 raster harita katmanına x.

Raster harita katmanı adları sayılara benzemediği veya içermediği sürece tırnak işaretleri gerekli değildir.
operatörler, VEYA program etkileşimli olmayan bir şekilde çalıştırılmadığı sürece. Burada verilen örnekler şunu varsaymaktadır:
Program interaktif olarak çalıştırılmaktadır. Aşağıdaki NOTLAR'a bakın.

r.mapcalc kullanıcının mevcut harita setine göre raster harita katmanlarını arayacaktır
arama yolu. Arama yolunu geçersiz kılmak ve hangi harita setinden yararlanılacağını belirlemek mümkündür.
Raster harita katmanını seçmek için. Bu, raster harita katmanı adının belirtilmesiyle yapılır.
form:

isim @harita seti

Örneğin, aşağıdaki hukuki bir ifadedir:

sonuç = x@KALICI / y@TOPRAK

Belirtilen harita kümesinin harita kümesi arama yolunda olması gerekmez. (Bu yöntem
harita seti arama yolunun geçersiz kılınması tüm GRASS komutları için ortaktır; yalnızca r.mapcalc.)

The semt niteleyici
Haritalar ve görüntüler taramalı formatta, yani iki boyutlu olarak saklanan veri tabanı dosyalarıdır.
tamsayı değerlerinin matrisleri. İçinde r.mapcalc, haritaların ardından bir semt niteleyici
bu, değerlendirilen mevcut hücreye göre göreceli bir uzaklığı belirtir. Format şu:
harita[r,c], Burada r satır uzaklığıdır ve c sütun uzaklığıdır. Örneğin, harita[1,2]
Geçerli hücrenin bir satır altındaki ve iki sütun sağındaki hücreyi ifade eder,
harita[-2,-1] geçerli hücrenin iki satır üstündeki ve bir sütun solundaki hücreyi ifade eder
hücre ve harita[0,1] Geçerli hücrenin sağındaki bir sütundaki hücreyi ifade eder. Bu
sözdizimi, tek bir haritada veya harita genelinde mahalle tipi filtrelerin geliştirilmesine izin verir
birden fazla harita.

Raster harita tabaka değerlerimiz itibaren the kategori dosya
Bazen bir kategorinin değeriyle ilişkili bir değerin kullanılması tercih edilebilir. etiket onun yerine
kategori değerinin kendisi. Raster harita katmanı adının önünde @ operatör, daha sonra
Raster harita katmanının kategori dosyasındaki etiketler, ifadede yerine kullanılır.
kategori değeri.

Örneğin, raster harita katmanının toprak.ph (toprak pH değerlerini temsil eder)
aşağıdaki gibi etiketlere sahip kategori dosyası:

kedi etiketi
------------------
0 veri yok
1 1.4
2 2.4
3 3.5
4 5.8
5 7.2
6 8.8
7 9.4

Daha sonra ifade:

sonuç = @topraklar.ph

0, 1.4, 2.4, 3.5, 5.8, 7.2, 8.8 ve 9.4 kategori değerlerine sahip bir sonuç üretecektir.

Bu operatörün yalnızca raster harita katmanlarına uygulanabileceğini ve kayan bir harita oluşturabileceğini unutmayın.
ifadedeki puan değeri. Bu nedenle kategori etiketi geçerli bir değerle başlamalıdır.
sayı. Kategori etiketi tamsayı ise kayan noktayla temsil edilir
sayı. Kategori etiketi bir sayıyla başlamıyorsa veya eksikse,
elde edilen tarama haritasında NULL (veri yok) ile temsil edilir.

Gri ölçek eşdeğerleri ve renk ayırır
Harita kategorilerine atanan renkleri değiştirmek genellikle faydalıdır. Bu
özellikle hücrelerin spektral özelliklerinin bir anlamı olduğunda faydalıdır (görüntülemede olduğu gibi)
veriler) veya harita kategorisi değerleri gerçek miktarları temsil ettiğinde (kategori değerlerinin
gerçek yükseklik değerlerini yansıtır). Harita renk manipülasyonu aynı zamanda görsel tanımaya da yardımcı olabilir.
ve harita baskısı.

# operatörü, harita kategorisi değerlerini gri tonlamaya dönüştürmek için kullanılabilir
eşdeğerlerini oluşturmak veya bir raster harita katmanının kırmızı, yeşil veya mavi bileşenlerini
ayrı raster harita katmanları.

sonuç = #harita

her kategori değerini dönüştürür harita temsil eden 0-255 aralığında bir değere
Kategorinin renginin ima ettiği gri tonlama düzeyi. Haritanın gri tonlamalı rengi varsa
tablo, o zaman #map'in değerlendirdiği gri düzeydir. Aksi halde şu şekilde hesaplanır:

0.10 * kırmızı + 0.81 * yeşil + 0.01 * mavi

Alternatif olarak şunları kullanabilirsiniz:

sonuç = y#harita

NTSC ağırlıklandırmalarını kullanmak için:

0.30 * kırmızı + 0.59 * yeşil + 0.11 * mavi

Veya şunları kullanabilirsiniz:

sonuç = i#harita

eşit ağırlıklar kullanmak için:

0.33 * kırmızı + 0.33 * yeşil + 0.33 * mavi

# operatörünün üç biçimi daha vardır: r#map, g#map, b#map. Bunlar kırmızıyı, yeşili çıkarır,
veya adlandırılmış tarama haritasındaki mavi bileşenler sırasıyla. GRASS kabuk betiği r.karışım
bu bileşenlerin her birini iki raster harita katmanından çıkarır ve bunları birleştirir.
Kullanıcı tarafından belirlenen yüzde. Bu formlar renk ayrımlarının yapılmasına olanak sağlar. Örneğin,
kırmızı bileşeni çıkarın harita ve onu yeni 0-255 harita katmanında saklayın kırmızı, Kullanıcı
şunu yazabilir:

kırmızı = r#harita

Bu haritaya gri renk türünü atamak için:

r.renkler haritası=kırmızı renk=kurallar
siyah
beyaz

Bu haritaya kırmızı renkler atamak için şunu yazın:

r.renkler haritası=kırmızı renk=kurallar
siyah
kırmızı

fonksiyonlar
Şu anda desteklenen işlevler aşağıdaki tabloda listelenmiştir. Sonucun türü
son sütunda belirtilmiştir. F işlevlerin her zaman kayan bir sonuçla sonuçlandığı anlamına gelir
Nokta değeri, I fonksiyonun bir tamsayı sonucu verdiği anlamına gelir ve * gösterir
Fonksiyonun argümanlarından herhangi biri kayan nokta değerleri ise sonuç kayan noktadır ve
tamsayı, eğer tüm argümanlar tamsayı ise.

fonksiyon açıklama türü
-------------------------------------------------- -------------------------
abs(x) x'in mutlak değerini döndürür *
acos(x) x'in ters kosinüsü (sonuç derece cinsindendir) F
asin(x) ters sinüs x (sonuç derece cinsindendir) F
atan(x) x'in ters tanjantı (sonuç derece cinsindendir) F
atan(x,y) y/x'in ters tanjantı (sonuç derece cinsindendir) F
cos(x) kosinüs x (x derece cinsindendir) F
double(x) x'i çift duyarlıklı kayan nokta F'ye dönüştürür
eval([x,y,...,]z) listelenen ifadenin değerlerini değerlendirir, sonuçları z'ye iletir
exp(x) x F'nin üstel fonksiyonu
exp(x,y) x üzeri y F
float(x), x'i tek duyarlıklı kayan nokta F'ye dönüştürür
graph(x,x1,y1[x2,y2..]), F grafiğindeki noktalara dayalı olarak x'i ay'a dönüştürür
graph2(x,x1[,x2,..],y1[,y2..])
grafiğin alternatif biçimi() F
eğer karar seçenekleri: *
if(x) 1 eğer x sıfır değilse, 0 değilse
if(x,a) a eğer x sıfır değilse, 0 değilse
if(x,a,b) a eğer x sıfır değilse, b aksi takdirde
if(x,a,b,c) a eğer x > 0 ise, b eğer x sıfırsa, c eğer x < 0 ise
int(x) x'i tamsayıya dönüştürür [ keser ] I
isnull(x) x = NULL olup olmadığını kontrol edin
log(x) x F'nin doğal logaritması
log(x,b) x tabanı b F'nin günlüğü
max(x,y[,z...]) listelenenlerin en büyük değeri *
medyan(x,y[,z...]) listelenenlerin medyan değeri *
min(x,y[,z...]) listelenenlerin en küçük değeri *
listelenenlerin mode(x,y[,z...]) mod değeri *
nmax(x,y[,z...]) NULL'lar hariç listelenenlerin en büyük değeri *
nmedian(x,y[,z...]) listelenenlerin medyan değeri, NULL'lar hariç *
nmin(x,y[,z...]) NULL'lar hariç listelenenlerin en küçük değeri *
NULL'lar hariç listelenenlerin nmode(x,y[,z...]) mod değeri *
x sıfırsa 1 değil, aksi takdirde 0 değil
pow(x,y) x üzeri y *
rand(a,b) rastgele değer x : a <= x < b *
(x) x'i en yakın I tam sayısına yuvarlayın
round(x,y) x'i y'nin en yakın katına yuvarlayın
Round(x,y,z) Bazı i tam sayıları için x'i en yakın y*i+z'ye yuvarlayın
sin(x) sinüs x (x derece cinsindendir) F
sqrt(x) karekök x F
tan(x) x'in tanjantı (x derece cinsindendir) F
xor(x,y) özel-veya (XOR) x ve y I
Dahili değişkenler:
row() hareketli pencerenin geçerli satırı
col() hareketli pencerenin geçerli sütunu
x() hareketli pencerenin geçerli x koordinatı
y() hareketli pencerenin mevcut y koordinatı
ewres() geçerli doğu-batı çözünürlüğü
nsres() geçerli kuzey-güney çözünürlüğü
null() NULL değeri
Row() ve col() indekslemenin 1 ile başladığını unutmayın.

Yüzer nokta değerlerimiz in the ifade
İfadede kayan nokta sayılarına izin verilir. Kayan noktalı sayı bir sayıdır
bir ondalık nokta içeren:
2.3 12.0 12
İfadedeki kayan nokta değerleri özel bir şekilde işlenir. Aritmetik ile ve
mantıksal operatörler, eğer işlenenlerden biri kayan nokta ise diğeri kayan noktaya dönüştürülür ve
işlemin sonucu floattır. Bu, özellikle tamsayıların bölünmesi anlamına gelir.
(kesilmiş) bir tam sayıyla sonuçlanırken kayan noktalı sayıların bölünmesi doğru bir kayan noktayla sonuçlanır
Nokta değeri. * türündeki işlevlerde (yukarıdaki tabloya bakın), eğer varsa sonuç kayan noktadır.
argümanı kayan noktadır, aksi halde tam sayıdır.

Not: Tamsayı sayılarla hesaplama yaparsanız ortaya çıkan harita tamsayı olacaktır. Eğer sen
Kayan noktalı bir sonuç elde etmek istiyorsanız, tam sayı (lar) a ondalık noktayı ekleyin.

Kayan noktalı bölme işlemi istiyorsanız, argümanlardan en az birinin kayan noktalı olması gerekir.
Nokta değeri. Bunlardan birini 1.0 ile çarpmak kayan nokta sonucunu üretecektir.
float() kullanarak:
r.mapcalc "ndvi = float(lsat.4 - lsat.3) / (lsat.4 + lsat.3)"

NULL destek
· Sıfıra bölme NULL ile sonuçlanmalıdır.

· Sıfıra göre modül NULL ile sonuçlanmalıdır.

· Herhangi bir aritmetik veya mantıksal işlemdeki NULL değerleri NULL ile sonuçlanmalıdır.
(ancak &&& ve ||| aşağıda açıklandığı gibi özel olarak ele alınır).

· &&& ve ||| operatörler x NULL olsa bile aşağıdaki aksiyomları gözlemler:
x &&& yanlış == yanlış
yanlış &&& x == yanlış
x ||| doğru == doğru
doğru ||| x == doğru

· İşlev bağımsız değişkenlerindeki NULL değerleri NULL ile sonuçlanmalıdır (ancak if(), eval() ve
isnull() aşağıda açıklandığı gibi özel olarak ele alınır.

· eval() işlevi her zaman son argümanını döndürür

· if() için durum şudur:
eğer(x)
x NULL ise NULL; 0 eğer x sıfırsa; 1 aksi halde
eğer(x,a)
x NULL ise NULL; a eğer x sıfır değilse; 0 aksi takdirde
eğer(x,a,b)
x NULL ise NULL; a eğer x sıfır değilse; aksi halde
eğer(x,n,z,p)
x NULL ise NULL; n eğer x negatifse;
z eğer x sıfırsa; p eğer x pozitifse

· (Yeni) fonksiyon isnull(x) şunu döndürür: eğer x NULL ise 1; 0 aksi takdirde. Yeni)
null() işlevi (argümanı olmayan) bir NULL tamsayı döndürür.

· NULL olmayan ancak geçersiz işlevlere ilişkin argümanlar NULL ile sonuçlanmalıdır.
Örnekler:
günlük(-2)
kare(-2)
pow(a,b) burada a negatiftir ve b bir tam sayı değildir

NULL desteği: Lütfen NULL hücrelerle gerçekleştirilen herhangi bir matematiğin her zaman NULL ile sonuçlandığını unutmayın.
Bu hücreler için değer. Bir NULL hücresini anında değiştirmek istiyorsanız isnull() işlevini kullanın.
if-ifadesinde test fonksiyonu.

Örnek: Kullanıcılar NULL değerli hücrelerin sıfır gibi değerlendirilmesini istiyor. A ve haritalarını eklemek için
B (burada B NULL'lar içerir) bir C haritası elde etmek için kullanıcı şöyle bir yapı kullanabilir:

C = A + if(boş(B),0,B)

NULL ve koşulları:

Tek argüman formu için:
if(x) = NULL eğer x NULL ise
eğer(x) = 0 eğer x = 0 ise
if(x) = 1 aksi halde (yani x ne NULL ne de 0'dır).

İki argüman formu için:
if(x,a) = NULL eğer x NULL ise
eğer(x,a) = 0 eğer x = 0 ise
if(x,a) = a aksi takdirde (yani x ne NULL ne de 0'dır).

Üç argüman formu için:
if(x,a,b) = NULL eğer x NULL ise
if(x,a,b) = b if x = 0
if(x,a,b) = a aksi halde (yani x ne NULL ne de 0'dır).

Dört argüman formu için:
if(x,a,b,c) = NULL eğer x NULL ise
if(x,a,b,c) = a eğer x > 0
if(x,a,b,c) = b if x = 0
if(x,a,b,c) = c if x < 0
Daha genel olarak, tüm operatörler ve çoğu işlev, argümanlarından *herhangi birinin* olması durumunda NULL değerini döndürür
NULL'dur.
if(), isnull() ve eval() işlevleri istisnadır.
isnull() işlevi, argümanı NULL ise 1, aksi takdirde 0 değerini döndürür. Kullanıcı ise
tam tersini istiyor, ! operatörü, örneğin "!isnull(x)" kullanılmalıdır.

İlk argüman NULL ise tüm if() biçimleri NULL değerini döndürür. 2, 3 ve 4 argüman formları
if() işlevi, "seçilen" bağımsız değişken NULL ise NULL değerini döndürür, örneğin:
if(0,a,b) = b a'nın NULL olup olmadığına bakılmaksızın
if(1,a,b) = a b'nin NULL olup olmadığına bakılmaksızın
eval() her zaman son argümanını döndürür, bu nedenle yalnızca son argüman şu şekildeyse NULL değerini döndürür:
BOŞ.

not: Kullanıcı == operatörünü kullanarak NULL için test yapamaz; çünkü bu, aşağıdaki durumlarda NULL değerini döndürür:
veya her iki bağımsız değişken de NULL'dur, yani eğer x ve y'nin her ikisi de NULL ise, o zaman "x == y" ve "x != y" olur
sırasıyla 1 ve 0 yerine her ikisi de NULL.
Kullanıcı NULL'un bilinmeyen bir miktarı temsil ettiğini düşünürse davranış anlamlı olur.
Örneğin, eğer x ve y'nin her ikisi de bilinmiyorsa, o zaman "x == y" ve "x != y" değerleri de aynı zamanda
Bilinmeyen; her ikisinin de bilinmeyen değerleri varsa, kullanıcı her ikisinin de bilinmeyen değerlere sahip olup olmadığını bilmez
aynı değere sahiptir.

NOTLAR


kullanım itibaren komuta hat
İfadenin komut satırında verilmesi durumunda ekstra dikkatli olunması gerekir. Bazı karakterler
UNIX kabuğu için özel bir anlamı vardır. Bunlar, diğerlerinin yanı sıra şunları içerir:
* ( ) > & |

İfadenin etrafına tek tırnak işareti konulması tavsiye edilir; Örneğin:
'sonuç = yükseklik * 2'
Tırnak işaretleri olmasaydı UNIX kabuğu için özel anlamı olan * değiştirilirdi
ve r.mapcalc * dışında bir şey görürdü.

çoklu hesaplamalar
Genel olarak her r.mapcalc komutunda mümkün olduğunca çok şey yapılması tercih edilir. Örneğin
ziyade:
r.mapcalc "$GIS_OPT_OUTPUT.r = r#$GIS_OPT_FIRST * .$GIS_OPT_PERCENT + (1.0 - .$GIS_OPT_PERCENT) * r#$GIS_OPT_SECOND"
r.mapcalc "$GIS_OPT_OUTPUT.g = g#$GIS_OPT_FIRST * .$GIS_OPT_PERCENT + (1.0 - .$GIS_OPT_PERCENT) * g#$GIS_OPT_SECOND"
r.mapcalc "$GIS_OPT_OUTPUT.b = b#$GIS_OPT_FIRST * .$GIS_OPT_PERCENT + (1.0 - .$GIS_OPT_PERCENT) * b#$GIS_OPT_SECOND"

kullanımı:
r.mapcalc <
$GIS_OPT_OUTPUT.r = r#$GIS_OPT_FIRST * .$GIS_OPT_PERCENT + (1.0 - .$GIS_OPT_PERCENT) * r#$GIS_OPT_SECOND
$GIS_OPT_OUTPUT.g = g#$GIS_OPT_FIRST * .$GIS_OPT_PERCENT + (1.0 - .$GIS_OPT_PERCENT) * g#$GIS_OPT_SECOND
$GIS_OPT_OUTPUT.b = b#$GIS_OPT_FIRST * .$GIS_OPT_PERCENT + (1.0 - .$GIS_OPT_PERCENT) * b#$GIS_OPT_SECOND
EOF

ikincisi her giriş haritasını yalnızca bir kez okuyacaktır.

Geriye uygunluk
GRASS 6 ile geriye dönük uyumluluk için eğer seçenek belirtilmemişse,
file=- (stdin'den okur), böylece kullanmaya devam edebilirsiniz, örneğin:
r.mapcalc < dosyası
ya da alışveriş sepetinize tıklayın:
r.mapcalc <
fo = 1
EOF
Ancak önceki GRASS GIS sürümleriyle uyumluluğa ihtiyacınız olmadığı sürece file= öğesini açıkça kullanın,
yukarıda belirtildiği gibi.

Harita adı büyük harf(ler) veya içinde bulunmasına izin verilmeyen bir nokta içerdiğinde
modül seçeneği adları, r.mapcalc komut tırnak işaretleri olmadan da geçerli olacaktır:
r.mapcalc height_A=1
r.mapcalc yüksekliği.1=1
Ancak yukarıda da belirtildiği gibi bu söz dizimi tırnak olarak önerilmez, daha güvenlidir. Tırnak işaretlerini kullanma
hem geriye dönük olarak uyumludur hem de gelecekte geçerlidir.

interaktif giriş in komuta hat
Kullanıcının standart girişten (komut satırı yerine) girdiği formüller için,
artık bir hat devamı özelliği mevcut. Kullanıcı bir karakterin sonuna ters eğik çizgi eklerse
giriş satırı, r.mapcalc kullanıcı tarafından girilen formülün devam ettiğini varsayar
sonraki giriş satırı. Olası giriş satırı sayısında veya
bir formülün uzunluğu.

Eğer r.mapcalc Kullanıcı tarafından girilen formül çok uzun, harita başlığı yalnızca
bir kısmı, ancak formülün çoğu (hepsi olmasa da) geçmiş dosyasına yerleştirilecektir.
the sonuç haritası.

Kullanıcı girdiye girdiğinde r.mapcalc komut satırında etkileşimli olmayan bir şekilde program
kullanıcıyı mevcut harita katmanlarının üzerine yazmaması konusunda uyarmaz. Bu nedenle kullanıcılar şunları almalıdır:
Program çıktılarına, mevcut sürümlerinde henüz mevcut olmayan raster harita adları atamaya özen gösterin.
harita kümeleri.

Raster MASKE idare
r.mapcalc Taramalı MASK işlemenin ortak GRASS davranışını takip eder, dolayısıyla MASK yalnızca
Mevcut bir GRASS tarama haritası okunurken uygulanır. Bu, örneğin,
komut:
r.mapcalc "yükseklik_abartılmış = yükseklik * 3"
MASK etkinse, maskelenmiş pikselleri dikkate alan bir harita oluşturun.

Ancak, herhangi bir haritayı temel almayan bir harita (örneğin bir sabitten bir harita) oluştururken:
r.mapcalc "taban_yüksekliği = 200.0"
oluşturulan tarama haritası yalnızca bir hesaplama bölgesiyle sınırlıdır ancak bundan etkilenmez.
aktif bir MASKE. Bu beklenen bir durumdur çünkü yukarıda belirtildiği gibi MASK yalnızca aşağıdaki durumlarda uygulanır:
taramalı harita yazarken değil, okurken.

Bu durumda da MASK'ın uygulanması gerekiyorsa, MASK'ı içeren bir if() ifadesi
kullanılmalıdır, örneğin:
r.mapcalc "taban_yüksekliği = if(MASK, 200.0, null())"
MASK ile ilgili ifadeleri test ederken, MASK aktif olduğunda göremediğinizi unutmayın.
NULL olmasalar bile maskelenmiş alanlardaki veriler. Görmek r.maske Ayrıntılar için.

değerlendirme işlev
Hesaplamanın çıktısının yalnızca bir harita olması gerekiyorsa ancak ifade çok karmaşıksa
Bunu birkaç ifadeye bölmenin daha iyi olması için eval işlevi kullanılabilir:
r.mapcalc << EOF
eval(elev_200 = yükseklik - 200,
elev_5 = 5 * yükseklik,
elev_p = pow(elev_5, 2))
Height_result = (0.5 * elev_200) + 0.8 * elev_p
EOF
Bu örnek, girdi sağlamak için unix benzeri << EOF sözdizimini kullanır. r.mapcalc.

Geçici değişkenlerin (haritalar) oluşturulmadığını ve bu nedenle önemli olmadığını unutmayın.
var olup olmadıkları. Yukarıdaki örnekte, eğer elev_200 haritası mevcutsa,
üzerine yazılır ve hiçbir hata oluşmaz. Bunun nedeni şu anda elev_200 adının olmasıdır.
mevcut haritayı değil, geçici değişkeni (haritayı) belirtir. Aşağıdaki kısımlar
ifade geçici elev_200'ü kullanacak ve mevcut elev_200 bozulmadan bırakılacak
ve kullanılmayacaktır. Kullanıcı mevcut haritayı kullanmak isterse geçici haritanın adı
değişken (harita) değiştirilmelidir.

Rasgele numara jeneratör başlatma
Rand() işlevi tarafından kullanılan sözde rastgele sayı üreteci bir değere başlatılabilir.
kullanılarak belirli bir değer tohum seçenek. Bu, önceki bir kopyayı kopyalamak için kullanılabilir
hesaplama.

Alternatif olarak, sistem zamanından ve PID'den aşağıdaki komut kullanılarak başlatılabilir: -r bayrağı.
Bu, her seferinde farklı bir tohumun kullanılmasıyla sonuçlanmalıdır.

Her iki durumda da tohum haritanın geçmişine yazılacak ve kullanılarak görülebilecektir.
r.bilgi.

Başkalarının sonuçlarınızı doğrulayabilmesini istiyorsanız, aşağıdakileri kullanmak tercih edilir:
tohum Komut dosyasında belirtilen veya bir kaynaktan oluşturulan bir tohum sağlama seçeneği
Açık bir tohum verilen sözde rastgele sayı üreteci gibi deterministik süreç.

Rand() fonksiyonunun önemli bir hata üreteceğini unutmayın. tohum seçenek ne de
the -s bayrak veriliyor.

ÖRNEKLER


İki raster harita katmanının ortalamasını hesaplamak için a ve b:
ortalama = (a + b)/2
Ağırlıklı ortalama oluşturmak için:
ortalama = (5*a + 3*b)/8.0
Raster harita katmanının ikili temsilini üretmek için a böylece kategori 0 0 olarak kalır
ve diğer tüm kategoriler 1 olur:
maske = a != 0
Bu aynı zamanda şu şekilde de gerçekleştirilebilir:
maske = eğer(a)
Raster harita katmanını maskelemek için b raster harita katmanına göre a:
sonuç = eğer(a,b)
5'in altındaki tüm değerleri NULL olarak değiştirmek için:
yeni harita = if(harita<5, null(), 5)
Graph() işlevi, kullanıcıların x,y çiftlerini kullanarak bir xy dönüşümü belirtmesine olanak tanır
koordinatlar. Bazı durumlarda bir değerden diğerine dönüşüm kolay değildir.
matematiksel olarak oluşturulmuştur ancak 2 boyutlu bir grafikle ve ardından doğrusal olarak temsil edilebilir
enterpolasyonlu. graph() işlevi bunu başarma fırsatını sağlar. Bir x ekseni
değer, bir ile temsil edilen ilişkili grafikle birlikte grafik fonksiyonuna sağlanır.
x,y çiftleri dizisi. X değerleri monoton olarak artan olmalıdır (her biri aşağıdakilerden büyük veya
öncekine eşit). Grafik fonksiyonu çiftler arasında doğrusal olarak enterpolasyon yapar. Herhangi bir x
en düşük x değerinden daha düşük bir değer (yani ilk), ilişkili y değerinin döndürülmesine neden olur.
Sonuncudan daha yüksek herhangi bir x değeri benzer şekilde ilgili y değerinin döndürülmesine neden olur.
Talebi düşünün:
yeniharita = grafik(harita, 1,10, 2,25, 3,50)
Sağlanan X (harita) değerleri ve döndürülen y (yeni harita) değerleri:
0, 10
1, 10
1.5, 17.5
2.9, 47.5
4, 50
100, 50

BİLİNEN KONULAR


Devam satırları \ ile bitmeli ve yok hayır sondaki beyaz boşluk (boşluklar veya sekmeler). Eğer
kullanıcı devam satırlarının sonunda boşluk bırakıyor, hata mesajları
tarafından üretilen r.mapcalc kullanıcı olarak anlamsız olacak ve denklem çalışmayacaktır.
amaçlandı. Bu özellikle eval() işlevi için önemlidir.

Şu anda herhangi bir yorum mekanizması bulunmamaktadır. r.mapcalc. Belki bir yetenek eklemek
kullanıcı bir satırın başına # işareti koyduğunda tüm satırın yok sayılmasına neden olur
çizgiyi sanki yokmuş gibi kullanmak işe yarayacaktır.

İşlev, kullanıcının yalnızca boşluk yerine "son" veya "çıkış" yazmasını gerektirmelidir
astar. Bu, birden çok komut dosyasının boşluklarla ayrılabilmesini sağlar.

r.mapcalc NULL hücreler üzerinde işlem yapılması durumunda bir uyarı yazdırmaz. Şuna bırakıldı:
Kullanıcının isnull() işlevini kullanması için.

Onworks.net hizmetlerini kullanarak r.mapcalcgrass'ı çevrimiçi kullanın



En yeni Linux ve Windows çevrimiçi programları