Hi everyone, After some more discussion off-line, we've found that Steve's data, where the units of the coordinate data are in km, was triggering a test in the Ferret code for whether we've crossed a branch cut. That code is intended to do a better job of matching data across the branch cut, but it caused this curvilinear data with units of km to go haywire. I think I have a fix for this and it'll be included in the next release. Ansley Stephen Guimond wrote: Hi Ansley, Thanks for your quick reply. My x and y points are actually in km not longitudes (don't know if that makes any difference). The center of the domain is at (0,0) with points to the right and left having positive and negative values, respectively. I tried overlaying "rings" of points instead of all at once and you can start to see some breakdown on the edges of the circle. As I said, I can lay down j=1:120 fine, but over this things get messy. Here is a list of x and y values for a point inside j=1:120 and a point outside j=1:120... I'm still not sure what the answer is. yes? list nndx[g=nuu,j=100],nndy[g=nuu,j=100],nndx[g=nuu,j=130],nndy[g=nuu,j=130] DATA SET: ./look X: 0.5 to 73.5 Column 1: NNDX[Y=200] is NDX[G=G3] Column 2: NNDY[Y=200] is NDY[G=G3] Column 3: NNDX[Y=260] is NDX[G=G3] Column 4: NNDY[Y=260] is NDY[G=G3] NNDX NNDY NNDX NNDY 1 / 1: 192.0 7.0 252.0 12.0 2 / 2: 190.0 24.0 249.0 35.0 3 / 3: 186.0 41.0 244.0 57.0 4 / 4: 181.0 58.0 237.0 78.0 5 / 5: 174.0 74.0 229.0 99.0 6 / 6: 166.0 90.0 218.0 120.0 7 / 7: 157.0 104.0 206.0 139.0 8 / 8: 146.0 118.0 192.0 157.0 9 / 9: 134.0 131.0 177.0 173.0 10 / 10: 122.0 143.0 160.0 189.0 11 / 11: 108.0 153.0 142.0 202.0 12 / 12: 93.0 163.0 123.0 215.0 13 / 13: 78.0 171.0 103.0 225.0 14 / 14: 61.0 177.0 82.0 234.0 15 / 15: 45.0 183.0 60.0 241.0 16 / 16: 28.0 186.0 38.0 246.0 17 / 17: 10.0 189.0 16.0 249.0 18 / 18: -6.0 190.0 -6.0 250.0 19 / 19: -23.0 189.0 -29.0 249.0 20 / 20: -41.0 186.0 -51.0 246.0 21 / 21: -58.0 183.0 -73.0 241.0 22 / 22: -74.0 177.0 -95.0 234.0 23 / 23: -91.0 171.0 -116.0 225.0 24 / 24: -106.0 163.0 -136.0 215.0 25 / 25: -121.0 153.0 -155.0 202.0 26 / 26: -135.0 143.0 -173.0 189.0 27 / 27: -147.0 131.0 -190.0 173.0 28 / 28: -159.0 118.0 -205.0 157.0 29 / 29: -170.0 104.0 -219.0 139.0 30 / 30: -179.0 89.0 -231.0 119.0 31 / 31: -187.0 74.0 -242.0 99.0 32 / 32: -194.0 58.0 -250.0 78.0 33 / 33: -199.0 41.0 -257.0 57.0 34 / 34: -203.0 24.0 -262.0 35.0 35 / 35: -205.0 7.0 -265.0 12.0 36 / 36: -206.0 -10.0 -266.0 -10.0 37 / 37: -205.0 -27.0 -265.0 -32.0 38 / 38: -203.0 -44.0 -262.0 -55.0 39 / 39: -199.0 -61.0 -257.0 -77.0 40 / 40: -194.0 -78.0 -250.0 -98.0 41 / 41: -187.0 -94.0 -242.0 -119.0 42 / 42: -179.0 -110.0 -231.0 -140.0 43 / 43: -170.0 -124.0 -219.0 -159.0 44 / 44: -159.0 -138.0 -205.0 -177.0 45 / 45: -147.0 -151.0 -190.0 -193.0 46 / 46: -135.0 -163.0 -173.0 -209.0 47 / 47: -121.0 -173.0 -155.0 -222.0 48 / 48: -106.0 -183.0 -136.0 -235.0 49 / 49: -91.0 -191.0 -116.0 -245.0 50 / 50: -74.0 -197.0 -95.0 -254.0 51 / 51: -58.0 -203.0 -73.0 -261.0 52 / 52: -41.0 -206.0 -51.0 -266.0 53 / 53: -23.0 -209.0 -29.0 -269.0 54 / 54: -6.0 -210.0 -6.0 -270.0 55 / 55: 10.0 -209.0 16.0 -269.0 56 / 56: 28.0 -206.0 38.0 -266.0 57 / 57: 45.0 -203.0 60.0 -261.0 58 / 58: 61.0 -197.0 82.0 -254.0 59 / 59: 78.0 -191.0 103.0 -245.0 60 / 60: 93.0 -183.0 123.0 -235.0 61 / 61: 108.0 -173.0 142.0 -222.0 62 / 62: 122.0 -163.0 160.0 -209.0 63 / 63: 134.0 -151.0 177.0 -193.0 64 / 64: 146.0 -138.0 192.0 -177.0 65 / 65: 157.0 -124.0 206.0 -159.0 66 / 66: 166.0 -109.0 218.0 -139.0 67 / 67: 174.0 -94.0 229.0 -119.0 68 / 68: 181.0 -78.0 237.0 -98.0 69 / 69: 186.0 -61.0 244.0 -77.0 70 / 70: 190.0 -44.0 249.0 -55.0 71 / 71: 192.0 -27.0 252.0 -32.0 72 / 72: 193.0 -10.0 253.0 -10.0 73 / 73: 192.0 7.0 252.0 12.0 ----- Original Message ----- From: Ansley Manke <Ansley.B.Manke@xxxxxxxx> Date: Tuesday, July 8, 2008 11:12 am Subject: Re: 3 Arguement (Curvilinear) Fill Problem To: Stephen Guimond <sguimond@xxxxxxx> Cc: oar.pmel.ferret_users@xxxxxxxxHi Steve, When you have a polar region, the curvilinear plotting commands can break down a bit. What do the longitudes look like? yes? shade nndx Here's one possibility for what's happening: If the branch cuts across the region at an angle (see an example below with some data I happen to have), then the 3-argument plot commands can have some trouble, drawing across the plot because 0 is next to 360 at, say, i=60, but in the next row, 0 is next to 360 at i=59. One way to deal with this is to break up the region into two or more so that the longitudes are monotonic in each one -- something along these lines. yes? use example_wind.nc yes? set view ul; shade longitude; go land ! Here, the longitudes are monotonic in j=1:60 and in j=61:122, if we add a constant value for longitude<0: yes? let longfix = if longitude lt 0 then longitude + 360 else longitude yes? set view ll; shade longitude[j=1:60]; go land yes? set view lr; shade longfix[j=61:122]; go land yes? frame/file=split_up_longitudes.gif If this kind of thing is going on, then we can do a fill/vlim/hlim with part of the data, and fill/over with the rest of the data and a fix on the longitudes. Let us know if this seems to be along the lines of what you need. Ansley Stephen Guimond wrote:Hi Ansley, My normal e-mail address (the one connected to the ferret usersgroup) is having problems but I wanted to get this question out to the group. If it doesn't go through can you forward on?I am getting some wacky features when plotting data using the 3argument fill command. My data is on a cylindrical grid and thus a 2-D slice makes a circle. Here is how I read in my data (array is (72,200)):>def axis/x=1:72:1/modulo xax;def axis/y=2:400:2/units=km yax def grid/x=xax/y=yax g2 file/grid=g2/format=stream/var="ndx,ndy,uu" look !necessary to regrid to fill the gap in the circle def axis/x=1:73:1 nx def grid/like=g2/x=nx g3 let nndx = ndx[g=g3] let nndy = ndy[g=g3] let nuu = uu[g=g3] fill nuu,nndx,nndy The attached plot is the output. Looks okay for j=1:120 butafter that things go wild. I overlaid my grid points with polymark to show that they are not the problem.Thanks for the help, Steve ------------------------------------------------------------------------ |