<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How to do Bilinear Interpolation using JMP? in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/How-to-do-Bilinear-Interpolation-using-JMP/m-p/106727#M39058</link>
    <description>&lt;P&gt;Essentially&amp;nbsp;it is called 2D multivariate interpolation. I have set of locations (x,y) and a corresponding data eg: z=color value. For some of the (x,y) the z column has data missing. I want to use the nearest two known ( x1,y1,z1) and (x2,y2,z2) to interpolate the value for (x3,y3, z3=?).&amp;nbsp;&lt;/P&gt;&lt;P&gt;Theoretically this &lt;A href="https://en.wikipedia.org/wiki/Bilinear_interpolation" target="_self"&gt;wiki/Bilinear_interpolation&lt;/A&gt;&amp;nbsp;is what I like to get.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does JMP has a way of doing this?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also I need first group the X,Y data by two other column A,B.&amp;nbsp;Example. COl A,B represents filename and frame number. X,Y is the location of a pixel in the frame and Z is the pixel color.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I want to interpolate the Z value for missing pixels in each frame in each file.&amp;nbsp;&lt;BR /&gt;Sample Data set&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;File&lt;/TD&gt;&lt;TD&gt;Frame&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;Color&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Antman&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;255&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;SPAN&gt;Antman&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;195&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;SPAN&gt;Antman&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;??&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;SPAN&gt;Antman&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;255&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Batman&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;255&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Batman&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;??&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Batman&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 17 Jan 2019 02:19:24 GMT</pubDate>
    <dc:creator>smostafa</dc:creator>
    <dc:date>2019-01-17T02:19:24Z</dc:date>
    <item>
      <title>How to do Bilinear Interpolation using JMP?</title>
      <link>https://community.jmp.com/t5/Discussions/How-to-do-Bilinear-Interpolation-using-JMP/m-p/106727#M39058</link>
      <description>&lt;P&gt;Essentially&amp;nbsp;it is called 2D multivariate interpolation. I have set of locations (x,y) and a corresponding data eg: z=color value. For some of the (x,y) the z column has data missing. I want to use the nearest two known ( x1,y1,z1) and (x2,y2,z2) to interpolate the value for (x3,y3, z3=?).&amp;nbsp;&lt;/P&gt;&lt;P&gt;Theoretically this &lt;A href="https://en.wikipedia.org/wiki/Bilinear_interpolation" target="_self"&gt;wiki/Bilinear_interpolation&lt;/A&gt;&amp;nbsp;is what I like to get.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does JMP has a way of doing this?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also I need first group the X,Y data by two other column A,B.&amp;nbsp;Example. COl A,B represents filename and frame number. X,Y is the location of a pixel in the frame and Z is the pixel color.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I want to interpolate the Z value for missing pixels in each frame in each file.&amp;nbsp;&lt;BR /&gt;Sample Data set&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;File&lt;/TD&gt;&lt;TD&gt;Frame&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;Color&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Antman&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;255&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;SPAN&gt;Antman&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;195&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;SPAN&gt;Antman&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;??&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;SPAN&gt;Antman&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;255&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Batman&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;255&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Batman&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;??&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Batman&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 17 Jan 2019 02:19:24 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/How-to-do-Bilinear-Interpolation-using-JMP/m-p/106727#M39058</guid>
      <dc:creator>smostafa</dc:creator>
      <dc:date>2019-01-17T02:19:24Z</dc:date>
    </item>
    <item>
      <title>Re: How to do Bilinear Interpolation using JMP?</title>
      <link>https://community.jmp.com/t5/Discussions/How-to-do-Bilinear-Interpolation-using-JMP/m-p/106912#M39072</link>
      <description>&lt;P&gt;If I understand correctly, you will need four points (not two) for the bilinear interpolation. The grouping columns would be wasily dealt with, so for one group you could do something like:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here( 1 );

// Example table: Four complete observations, and one missing 'Colour' to be
// obtained by bilinear interpolation
dt = New Table( "Antman_1",
			Add Rows( 5 ),
			New Column( "X",
				Numeric,
				"Continuous",
				Format( "Best", 12 ),
				Set Values( [0, 5, 3, 5, 0] )
			),
			New Column( "Y",
				Numeric,
				"Continuous",
				Format( "Best", 12 ),
				Set Values( [0, 5, 2, 0, 5] ),
				Set Display Width( 92 )
			),
			New Column( "Colour",
				Numeric,
				"Continuous",
				Format( "Best", 12 ),
				Set Values( [255, 195, ., 100, 150] )
			)
		);

// Using the notation at: https://en.wikipedia.org/wiki/Bilinear_interpolation
x1 = dt[1, "X"];
x2 = dt[2, "X"];
y1 = dt[1, "Y"];
y2 = dt[2, "Y"];
q11 = dt[1, "Colour"];
q21 = dt[4, "Colour"];
q12 = dt[5, "Colour"];
q22 = dt[2, "Colour"];
x = dt[3, "X"];
y = dt[3, "Y"];

// Interpolate in the X direction
r1 = Interpolate(x, x1, q11, x2, q21);
r2 = Interpolate(x, x1, q12, x2, q22);

// Interpolate in the Y direction
p = Interpolate(y, y1, r1, y2, r2);
Wait(3);
dt[3, "Colour"] = p;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is unlikely to be the 'best' way, but to do better some sample data (in a JMP table) would be required. You would also need to decide how to handle edge cases.&lt;/P&gt;</description>
      <pubDate>Thu, 17 Jan 2019 16:16:34 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/How-to-do-Bilinear-Interpolation-using-JMP/m-p/106912#M39072</guid>
      <dc:creator>ian_jmp</dc:creator>
      <dc:date>2019-01-17T16:16:34Z</dc:date>
    </item>
  </channel>
</rss>

