[Thread Prev][Thread Next][Index]
Re: [ferret_users] @FNR in 2D fills up x dimension first
- To: <ferret_users@xxxxxxxx>
- Subject: Re: [ferret_users] @FNR in 2D fills up x dimension first
- From: Hella Riede <Hella.Riede@xxxxxx>
- Date: Tue, 3 Jul 2018 19:58:27 +0200
- Arc-authentication-results: i=3; mx.google.com; arc=pass (i=2); spf=softfail (google.com: domain of transitioning hella.riede@xxxxxx does not designate 52.222.5.176 as permitted sender) smtp.mailfrom=hella.riede@xxxxxx
- Arc-authentication-results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=dwd.de); spf=softfail (google.com: domain of transitioning hella.riede@xxxxxx does not designate 65.127.216.226 as permitted sender) smtp.mailfrom=Hella.Riede@xxxxxx
- Arc-authentication-results: i=1; mx.google.com; spf=pass (google.com: domain of hella.riede@xxxxxx designates 141.38.3.245 as permitted sender) smtp.mailfrom=Hella.Riede@xxxxxx
- Arc-message-signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:content-language:in-reply-to:mime-version:user-agent :date:organization:from:references:to:subject :arc-authentication-results:arc-message-signature :arc-authentication-results:arc-message-signature :arc-authentication-results; bh=MpLYsy1adJOCKSNI2fGiEWN9stEDUuOvsQIpvEh8Kqk=; b=coAHU7u3/Cx0+A5M/BqCb6jjScjKd/3aKeIsWcGnIWwy29P+M4v8FW9uEJxSsg7bZ8 ro4BGxkPah446sHhxHtLdzyL7BUMzjGe+6F1BvIY+3xcQFRjmMl36KeeA4Wncot1mSQt Q4OwGnscGS4c2CpUI7mKjh4grcYXs7MRS2GNapHNfDDn6QIWcu8cOrYwemhtpffhyWIj sICBivVuce0JM/RkFiIXLI+O/w+nkFvYmRv48FUxd8qIQNksU2ZwGKThMiCE2r+jeX9Z 2AiRAnsGGkJ5FaDkYJQYspfWyxs8RQodnryXZIAREiurLO+AE2WchjROurQKIlLEa895 Qk1g==
- Arc-message-signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:from:references:to:subject :arc-authentication-results:arc-message-signature :arc-authentication-results; bh=MpLYsy1adJOCKSNI2fGiEWN9stEDUuOvsQIpvEh8Kqk=; b=pqJ/9z0i6IGWmjE2zuidE7rtep7OYPoDA5zaUmmI/DUsOVYjK78+A5JiwM1eExj+wm V386ACnbhArDuCB9Cja5d/FnxF5NeNbC1UjiGt4XRwfwLNQL3kWW5eMjLf4jr/6t4D+p O7432Dj2Q2owTuqmMpgwjVU4o7ommNAPH9OrcOCyP0Dn7n0dey0r6877LFGdGxpAvXW5 ITxEiY7Sk/ok4jS8ok3nb8cGV7mNDn7a+n7x4/Kp5IDeU2Qx62ba4kLVwL12GWP/WWFB 9NJ0FCjLfj1xjSe4LVce27Y/UstskYVNcAphRFUdUiGyK+q2Dc6HCYRBy3klb8Dk3vUf 2tLw==
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:from:references:to:subject :arc-authentication-results; bh=MpLYsy1adJOCKSNI2fGiEWN9stEDUuOvsQIpvEh8Kqk=; b=tWV8/uQLFI7bEoXCYO/l2BEVQGRe/d26mOnIcGkjXFqT16W5WHdueAgyJIq7TIGXqR VItHBcgqSQiEKwEA+lKjfQNldrz5ebrndwyCv3KOs9lPUZ2A6mbOTjN/jLICifgHZjyb +WSBNs7HSnTeXGjLfEPRsK4BfI64KEpaX0urvApB+Yr2A3NIA/a9Ig8uOGj/uwmCSDY+ dI8G9k8wXtrCMOEDlDHQhaNggggZCIruNHJs4r+q1WH5/9Eg8lBf5+FK/lVIBItfwHGH 3QTvz6umHMwU7SwRci0c+EVrwAml52eQqUwFsN1iQP5pDNYL/ZMFhEdUcjS9o5Gdu0IL Z7Ww==
- Arc-seal: i=3; a=rsa-sha256; t=1530640721; cv=pass; d=google.com; s=arc-20160816; b=hxGg0Dz2XcVjEaLHwavpSB5+OwHcG3UhcpXcLQt+onl93HXSm4Gxar8kx0zB0n11l4 m3QPcfU7yg7N6LwVwpYMAKcVWOICcxFNuUzsIm3UcuyQOfrXhOuIf0krR6L7GotxRx0w PekN0HlxvZKD8r02/IEMO1tYAc20BhP8j9HA/0M8i/Ci0MVdnXn/f0pjeO6wAleVcvA9 M5JGAt9Izm1v3vOiVD2wniEyeeEMFW36ckB4mgK6PEKw8HsRFd7So2vXN1BQpok4qziB 8uEpv/NsE8PdipDSpCqlSgUxvwHDNLDJg2jOFQoSdGQsNDhBVPkM7EU6ezhPkUnvyaCZ gJqw==
- Arc-seal: i=2; a=rsa-sha256; t=1530640716; cv=pass; d=google.com; s=arc-20160816; b=fnDJgqpkWWT7EzMAwFalMjBg5UrRfrj5R/+WFEj7GefZaMkBq5M3PyOHHAH16CgmrW hwpJnJuIrWNy10uLwwAtlKo59M0bCMoCewWbruwSUkxZpmGJTspevMNvI4o00Sprxk0q IMXNzyDmVfKMFAz7JnWQWrxWNhCTZBs8vulRGyTTdz0dBrRrX/sYxQ0AJ1cT1tI0NX+i tBaOyUOczFLlv0U3PyvvCcu4qAJwZd5sySlLJvuyYYrhwReif6v3j2mLo4nbBtq2W+fd U8k09P1jBqZcfNycr9L1JSIQ1bMGE4ZzezoGc8E9ieQ71aaLqrtx0TngMpRQBOGAqEJx 63fQ==
- Arc-seal: i=1; a=rsa-sha256; t=1530640709; cv=none; d=google.com; s=arc-20160816; b=rzRuVTJMDKBBruonCIUi/oufPdcL8lV5G+AeKMJlVtirkelh3m3yQZWvQvY1x80myt 70x1ua6ytI8ol2DQyW2TE6SzJCbul+YJFIBJYlbJMctCx+oSOFdC1tOEF19fJKeavAjv Xp4bUwKgnXRNSmDBwPPwaWdqEQNp7A+ZV4dWVA9yga+zOW802LagrnjhTfLN+dP4Dbl/ 51vDCpUoq/BcsMVyD2dX0DtH6mEXm3yVMOR3rD0dEzej51SCxQ7AxchUcJDnly5B4YS5 crXgsBuA/8VjFP1fd8EUIBosLoKIvRolrWxVtPogXmr6eatpU9gW2FkN0wNDGLQAPZRr 7uHw==
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=noaa.gov; s=google; h=sender:subject:to:references:from:organization:date:user-agent :mime-version:in-reply-to:content-language:message-id :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:list-post:list-help:list-archive; bh=MpLYsy1adJOCKSNI2fGiEWN9stEDUuOvsQIpvEh8Kqk=; b=IiApjkw0R6I50MwvvaT5v8WjTefVqgYOoB7CbqZKjcsEKsCavZl5rtkaIpvAWBmqVt tSXZpKbvA7wPT+2rXHu6sxkqeDj21BhnVq7MFGz7r3iatDTPnc6STZ1wF75rLPdj35Pa vPGU21pVI3Suwq9Ix0vu/bEiO03Vv2nbR09ghr9r418JGV+00dSNyDpoWN2YeM40Sg7W vbDEtlx25XAW/QbS8pLJ423ENNqGCYb25N+vi8r1AASqBlDvmwib2qaiC+U6r8RZwroK TxY31jxshrUN/RYPQMwkZRBa1giMmd7u4XE70a1vD1iq+jVP+6p26zHNcJ3EnBff4tLa 4uqw==
- In-reply-to: <c5104d1f-2041-f20d-5641-f9241faaecf3@noaa.gov>
- List-archive: <https://groups.google.com/a/noaa.gov/group/ferret_users/>
- List-help: <https://support.google.com/a/noaa.gov/bin/topic.py?topic=25838>, <mailto:ferret_users+help@noaa.gov>
- List-id: <ferret_users.noaa.gov>
- List-post: <https://groups.google.com/a/noaa.gov/group/ferret_users/post>, <mailto:ferret_users@noaa.gov>
- Mailing-list: list ferret_users@xxxxxxxx; contact ferret_users+owners@xxxxxxxx
- Organization: Deutscher Wetterdienst
- References: <b707eb3a-0146-60d9-b4c5-9c768979a732@exch.dwd.de> <c5104d1f-2041-f20d-5641-f9241faaecf3@noaa.gov>
- Sender: owner-ferret_users@xxxxxxxx
- User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0
Hi Ansley,
I had looked into fill_xy before trying @FNR, but it is "leaking"
interpolation, see attached figure fill_xy_6iter_interpolation_leak.png.
fill_xy_iter1.png
shows that already at iteration = 1 (iter), fill_xy does not correspond
to filling up with nearest-neighbor values. See for instance x=2 y=1:
should be filled with 1.
fill_xy_iter1_longaxes.png
Same happens when x and y axes span from -2 to 10 to be sure not to cut
any area of the created grid object, not shown.
The mask was '1' everywhere on the grid for all examples.
def ax/x=-2:10:1 xax
def ax/y=-2:10:1 yax
def sym lev = (0.5,10.5,1)
let a = {3,3,3,5,5,5}
let b = {1,2,3,1,2,3}
let val = {1,2,3,4,5,6}
let gridded=SCAT2GRIDGAUSS_XY(a,b,val,x[gx=xax],y[gy=yax],0.8,0.8,0.8,0)
let mask = IF gridded THEN 1 ELSE 1
let iter = 1
let filled = FILL_XY (gridded, mask, iter)
shade/lev=($lev) filled
go polymark poly/lev=($lev)/key/ov/line/fill a b val circle 2
Best regards,
Hella Riede
P.S. Regarding figure fill_xy_6iter_interpolation_leak.png: I had made a
mistake in my previous handmade "expected" figure at position x=3 y=2,
which is corrected in the attached version.
Am 29.06.2018 um 20:10 schrieb Ansley C. Manke:
Hi Hella,
The function fill_xy does fill in two dimensions together, but with one
caveat. Here is your script, with the xax and yax axis definitions
changed so that the points are not in the corners of the domain
yes? let a = {1,1,8,8,2}
yes? let b = {1,8,8,1,4}
yes? let val = {2,4,6,8,10}
yes? def ax/x=-2:10:1 xax
yes? def ax/y=-2:10:1 yax
yes? def sym lev = (1.5,10.5,1)
yes? !! assign values from dots to grid cells
yes? set win 1
yes? let gridded =
SCAT2GRIDGAUSS_XY(a,b,val,x[gx=xax],y[gy=yax],0.8,0.8,0.8,0)
yes? shade/lev=($lev) gridded
yes? show function fill_xy
FILL_XY(DATA,MASK,N)
fills missing values with average nearest neighbour values
DATA: this arg is filled
MASK: mask (1 -> fill, missing -> do not fill)
N: the maximum number of fill-passes
yes? ! define a mask that's 1 everywhere
yes? let mask = 0*missing(gridded,1)+1
yes? set window/new
yes? shade/lev=($lev) fill_xy(gridded, mask, 1)
! also look at fill_xy(gridded, mask, 2), fill_xy(gridded, mask, 3) ...
The function avoids filling singleton points that lie in a corner of the
domain. We'll have to look into why that happens, but otherwise this
function does what you need.
Ansley
On 6/28/2018 7:37 AM, Hella Riede wrote:
Hello ferret community,
I am using @FNR in two dimensions and got an unexpected result (see
ferret script at end of this mail):
In the attached ferret_before_FNR.png, the original 2D grid cells are
shown (values inherited from dots by scat2grid, see below).
ferret_after_FNR.png shows the result after applying @FNR (fill with
nearest neighbor) in 2 dimensions.
As an example for the unexpected result, lets take the grid cell at
(x=8,y=5). Its value before @FNR was undefined. The nearest neighbor
is (x=8,y=8). Yet, the value is inherited from (x=2,y=4).
Is @FNR not supposed to be applied in 2D or is the logic behind
different from what I expected? It seems the missing points are always
filled up in x dimension first, and only remaining missing values are
then filled up in y direction ...
I attached a manual version of what I would have expected as
ferret_FNR_expected.png.
Thank you very much in advance for helping to clarify this.
Best regards,
Hella Riede
can var/all
can sym/all
let a = {1,1,8,8,2}
let b = {1,8,8,1,4}
let val = {2,4,6,8,10}
def ax/x=1:8:1 xax
def ax/y=1:8:1 yax
def sym lev = (1.5,10.5,1)
!! assign values from dots to grid cells
set win 1
let gridded =
SCAT2GRIDGAUSS_XY(a,b,val,x[gx=xax],y[gy=yax],0.8,0.8,0.8,0)
shade/lev=($lev) gridded
!! plot original scattered values for comparison
go polymark poly/lev=($lev)/key/ov/line/fill a b val circle 2
!! fill up undefined values with nearest neighbor
set win 2
let nn = gridded[x=@FNR,y=@FNR]
shade/lev=($lev) nn
go polymark poly/lev=($lev)/key/ov/line/fill a b val circle 2
--
Hella Riede
Deutscher Wetterdienst
Forschung und Entwicklung - Verfahrensentwicklung Fernerkundung (FE23)
Projekt Flottenwetterkarte (FloWKar)
Frankfurter Str. 135, 63067 Offenbach / Main
Tel. +49-69-8062-2414
https://www.bmvi.de/SharedDocs/DE/Artikel/DG/mfund-projekte/flotten-wetter-karte-flowkar.html
Attachment:
fill_xy_6iter_interpolation_leak.png
Description: PNG image
Attachment:
fill_xy_iter1.png
Description: PNG image
Attachment:
fill_xy_iter1_longaxes.png
Description: PNG image
[Thread Prev][Thread Next][Index]
Contact Us
Dept of Commerce /
NOAA /
OAR /
PMEL /
Ferret
Privacy Policy | Disclaimer | Accessibility Statement