SDO_GEOM.RELATE incorrect result - oracle

I want to determine the relationship between two polygons. They are almost equal, but oracle determines the relationship as "TOUCH"
select SDO_GEOM.RELATE (
MDSYS.SDO_GEOMETRY(2003,25832,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1,197,2003,1),MDSYS.SDO_ORDINATE_ARRAY(374119.43424706,5691944.80315028,374122.56159561,5691942.35776406,374125.07036344,5691939.84899623,374125.6278674,5691939.57024425,374136.1929,5691929.95,374126.74287533,5691918.94259766,374123.7908,5691919.3093,374120.83482781,5691914.30907697,374137.39360515,5691894.33055213,374144.35862375,5691897.41123343,374184.73010996,5691918.44877131,374178.5571,5691928.4882,374193.0645,5691937.4126,374203.6583,5691943.778,374207.76840888,5691947.06665824,374207.8497,5691953.1253,374206.20370687,5691961.70609861,374201.4204,5691986.3921,374197.2671265,5692000.33817609,374196.52293214,5692003.61939276,374190.5211,5692028.0781,374186.8797,5692037.6394,374182.61070422,5692050.1790179,374181.89211667,5692052.69407434,374175.69429903,5692070.47911627,374171.47259715,5692080.89863579,374162.49025274,5692095.98897439,374152.1525154,5692109.0546975,374127.197,5692126.3677,374120.27636327,5692131.38310293,374108.8928,5692139.6328,374097.09878544,5692131.02011759,374090.76457677,5692127.60988405,374086.32383809,5692125.21906354,374074.95934331,5692117.35133638,374068.20495934,5692112.67522439,374059.81117092,5692106.94549012,374054.0060377,5692102.681321,374049.24982463,5692099.01637733,374036.28831379,5692081.88669367,374029.91084926,5692072.3654086,374018.47857381,5692057.2113746,374005.212338585,5692038.71428125,373996.87175187,5692045.21896561,373996.30696508,5692049.163621,373988.90696508,5692054.163621,373972.30696508,5692032.963621,373964.50696508,5692021.763621,373956.30696508,5692010.163621,373944.90696508,5691998.763621,373932.50696508,5691987.163621,373921.30696508,5691975.963621,373900.086080328,5691954.83317774,373892.43,5691960.33,373876.72,5691933.43,373845.50696508,5691919.563621,373828.50696508,5691901.763621,373800.30696508,5691873.563621,373789.10696508,5691861.163621,373801.992436666,5691849.15142511,373756.70696508,5691803.963621,373735.10696508,5691781.163621,373718.70696508,5691764.163621,373704.90696508,5691748.963621,373713.30696508,5691739.563621,373725.61877479,5691729.9487546,373744.1508009,5691750.4148284,373774.01302383,5691782.0868812,373807.60210366,5691813.6839065,373831.81451845,5691837.682647,373853.7996963,5691858.39944878,373902.67941274,5691904.45918063,373922.98478297,5691923.5930868,373961.28732974,5691965.43010412,373986.1373196,5691992.57319366,374027.89090222,5692038.17970046,374043.46520697,5692055.19116608,374064.30270376,5692043.73054285,374068.64153567,5692041.3441853,374111.8750999,5692084.5659021,374118.00007278,5692080.6143047,374123.72989196,5692076.2675461,374130.44761047,5692071.1304726,374133.58868439,5692068.63372068,374138.15322833,5692065.0054922,374140.03229695,5692062.93010266,374144.77215088,5692057.6950393,374152.35208147,5692047.24340754,374155.98479933,5692042.2344132,374158.18891274,5692036.20983738,374161.91219536,5692026.0328663,374152.64292952,5692013.41663374,374138.05718211,5691993.56423284,374126.85729247,5691978.32026263,374119.54566412,5691965.47551012,374118.81594799,5691964.33851056,374111.04836631,5691952.23553446,374119.43424706,5691944.80315028,374145.1616,5691963.034,374157.9885,5691964.1404,374153.0214,5691949.1144,374140.9722,5691953.6877,374145.1616,5691963.034))
, 'determine',
MDSYS.SDO_GEOMETRY(2003,25832,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1,203,2003,1),MDSYS.SDO_ORDINATE_ARRAY(374043.465206972,5692055.19116608,374068.641535671,5692041.3441853,374111.8750999,5692084.5659021,374118.00007278,5692080.6143047,374123.72989196,5692076.2675461,374130.44761047,5692071.1304726,374133.588684394,5692068.63372068,374138.15322833,5692065.0054922,374144.77215088,5692057.6950393,374152.352081467,5692047.24340754,374155.98479933,5692042.2344132,374158.188912742,5692036.20983738,374161.91219536,5692026.0328663,374126.857292471,5691978.32026263,374119.545664122,5691965.47551012,374111.04836631,5691952.23553446,374110.6621255,5691951.55287628,374111.475518872,5691951.02636587,374122.561595614,5691942.35776406,374125.070363442,5691939.84899623,374125.627867404,5691939.57024425,374136.1929,5691929.95,374126.742875328,5691918.94259766,374123.7908,5691919.3093,374120.834827807,5691914.30907697,374137.393605153,5691894.33055213,374146.752914089,5691898.47024646,374184.73010996,5691918.44877131,374178.5571,5691928.4882,374193.0645,5691937.4126,374203.6583,5691943.778,374207.768408877,5691947.06665824,374207.8497,5691953.1253,374203.5906,5691975.3286,374202.7846,5691980.152,374201.4204,5691986.3921,374197.2671265,5692000.33817609,374194.449392315,5692012.7618075,374190.5211,5692028.0781,374186.8797,5692037.6394,374182.610704222,5692050.1790179,374181.892116669,5692052.69407434,374175.694299027,5692070.47911627,374171.472597154,5692080.89863579,374165.4544264,5692091.22833186,374162.490252744,5692095.98897439,374152.152515397,5692109.0546975,374127.197,5692126.3677,374108.8928,5692139.6328,374097.098785442,5692131.02011759,374086.323838095,5692125.21906354,374068.204959335,5692112.67522439,374057.4343,5692105.323,374049.249824632,5692099.01637733,374036.288313788,5692081.88669367,374029.910849257,5692072.3654086,374022.2691,5692062.4965,374004.871025728,5692038.81214604,374003.683827056,5692039.8297449,373996.899834639,5692045.34173874,373996.136635492,5692049.24253438,373988.928643549,5692054.24572879,373972.318502371,5692033.04574923,373965.288134667,5692022.85754718,373956.026280328,5692009.98017827,373944.541676103,5691998.51343684,373937.016587809,5691991.34811373,373931.350286264,5691986.07155779,373924.754591345,5691979.50584331,373918.848446349,5691973.53973745,373900.050715829,5691954.83194822,373890.666840785,5691964.06592111,373849.937585098,5691924.40126746,373831.349004547,5691904.97320263,373805.564844428,5691878.82926353,373789.134937747,5691861.32001991,373801.487349339,5691848.96760832,373759.633061517,5691806.87346785,373733.009417114,5691779.53026549,373704.815450301,5691748.92374358,373713.083282479,5691739.59593292,373725.618774786,5691729.9487546,373748.954436917,5691755.50959358,373774.01302383,5691782.0868812,373798.149147215,5691804.49899316,373802.51787652,5691808.5556699,373807.60210366,5691813.6839065,373831.81451845,5691837.682647,373842.458795054,5691847.71283052,373865.216245828,5691869.157351,373888.862942235,5691891.43981446,373922.98478297,5691923.5930868,373935.147043721,5691936.87765288,373966.632992237,5691971.26905201,373979.962420575,5691985.82848921,373990.042422418,5691996.83865034,373998.422113111,5692005.99159954,374007.658279099,5692016.0800576,374016.018029933,5692025.21122693,374031.723718158,5692042.3661998,374043.465206972,5692055.19116608,374145.1616,5691963.034,374157.9885,5691964.1404,374153.0214,5691949.1144,374140.9722,5691953.6877,374145.1616,5691963.034))
, 0.0000005) from dual;

What version of Oracle ?
I tried the test case with Oracle 12.2. I am getting OVERLAPBDYINTERSECT at all tolerances, except at 0.5 where I get COVEREDBY.
I do not get TOUCH with any tolerance. Definitely TOUCH is incorrect. If you do get TOUCH, then that would be a bug that needs looking at - unless you do it on an old no-longer supported version ...

I recommend to use JTS Topology Suite, this is a open-source java based geometry tool. Use SDO_UTIL.TO_WKTGEOMETRY, the result you can copy/paste to JTS:
POLYGON ((374119.43424706 5691944.80315028, 374122.56159561 5691942.35776406, 374125.07036344 5691939.84899623, 374125.6278674 5691939.57024425, 374136.1929 5691929.95, 374126.74287533 5691918.94259766, 374123.7908 5691919.3093, 374120.83482781 5691914.30907697, 374137.39360515 5691894.33055213, 374144.35862375 5691897.41123343, 374184.73010996 5691918.44877131, 374178.5571 5691928.4882, 374193.0645 5691937.4126, 374203.6583 5691943.778, 374207.76840888 5691947.06665824, 374207.8497 5691953.1253, 374206.20370687 5691961.70609861, 374201.4204 5691986.3921, 374197.2671265 5692000.33817609, 374196.52293214 5692003.61939276, 374190.5211 5692028.0781, 374186.8797 5692037.6394, 374182.61070422 5692050.1790179, 374181.89211667 5692052.69407434, 374175.69429903 5692070.47911627, 374171.47259715 5692080.89863579, 374162.49025274 5692095.98897439, 374152.1525154 5692109.0546975, 374127.197 5692126.3677, 374120.27636327 5692131.38310293, 374108.8928 5692139.6328, 374097.09878544 5692131.02011759, 374090.76457677 5692127.60988405, 374086.32383809 5692125.21906354, 374074.95934331 5692117.35133638, 374068.20495934 5692112.67522439, 374059.81117092 5692106.94549012, 374054.0060377 5692102.681321, 374049.24982463 5692099.01637733, 374036.28831379 5692081.88669367, 374029.91084926 5692072.3654086, 374018.47857381 5692057.2113746, 374005.212338585 5692038.71428125, 373996.87175187 5692045.21896561, 373996.30696508 5692049.163621, 373988.90696508 5692054.163621, 373972.30696508 5692032.963621, 373964.50696508 5692021.763621, 373956.30696508 5692010.163621, 373944.90696508 5691998.763621, 373932.50696508 5691987.163621, 373921.30696508 5691975.963621, 373900.086080328 5691954.83317774, 373892.43 5691960.33, 373876.72 5691933.43, 373845.50696508 5691919.563621, 373828.50696508 5691901.763621, 373800.30696508 5691873.563621, 373789.10696508 5691861.163621, 373801.992436666 5691849.15142511, 373756.70696508 5691803.963621, 373735.10696508 5691781.163621, 373718.70696508 5691764.163621, 373704.90696508 5691748.963621, 373713.30696508 5691739.563621, 373725.61877479 5691729.9487546, 373744.1508009 5691750.4148284, 373774.01302383 5691782.0868812, 373807.60210366 5691813.6839065, 373831.81451845 5691837.682647, 373853.7996963 5691858.39944878, 373902.67941274 5691904.45918063, 373922.98478297 5691923.5930868, 373961.28732974 5691965.43010412, 373986.1373196 5691992.57319366, 374027.89090222 5692038.17970046, 374043.46520697 5692055.19116608, 374064.30270376 5692043.73054285, 374068.64153567 5692041.3441853, 374111.8750999 5692084.5659021, 374118.00007278 5692080.6143047, 374123.72989196 5692076.2675461, 374130.44761047 5692071.1304726, 374133.58868439 5692068.63372068, 374138.15322833 5692065.0054922, 374140.03229695 5692062.93010266, 374144.77215088 5692057.6950393, 374152.35208147 5692047.24340754, 374155.98479933 5692042.2344132, 374158.18891274 5692036.20983738, 374161.91219536 5692026.0328663, 374152.64292952 5692013.41663374, 374138.05718211 5691993.56423284, 374126.85729247 5691978.32026263, 374119.54566412 5691965.47551012, 374118.81594799 5691964.33851056, 374111.04836631 5691952.23553446, 374119.43424706 5691944.80315028), (374145.1616 5691963.034, 374157.9885 5691964.1404, 374153.0214 5691949.1144, 374140.9722 5691953.6877, 374145.1616 5691963.034))
POLYGON ((374043.465206972 5692055.19116608, 374068.641535671 5692041.3441853, 374111.8750999 5692084.5659021, 374118.00007278 5692080.6143047, 374123.72989196 5692076.2675461, 374130.44761047 5692071.1304726, 374133.588684394 5692068.63372068, 374138.15322833 5692065.0054922, 374144.77215088 5692057.6950393, 374152.352081467 5692047.24340754, 374155.98479933 5692042.2344132, 374158.188912742 5692036.20983738, 374161.91219536 5692026.0328663, 374126.857292471 5691978.32026263, 374119.545664122 5691965.47551012, 374111.04836631 5691952.23553446, 374110.6621255 5691951.55287628, 374111.475518872 5691951.02636587, 374122.561595614 5691942.35776406, 374125.070363442 5691939.84899623, 374125.627867404 5691939.57024425, 374136.1929 5691929.95, 374126.742875328 5691918.94259766, 374123.7908 5691919.3093, 374120.834827807 5691914.30907697, 374137.393605153 5691894.33055213, 374146.752914089 5691898.47024646, 374184.73010996 5691918.44877131, 374178.5571 5691928.4882, 374193.0645 5691937.4126, 374203.6583 5691943.778, 374207.768408877 5691947.06665824, 374207.8497 5691953.1253, 374203.5906 5691975.3286, 374202.7846 5691980.152, 374201.4204 5691986.3921, 374197.2671265 5692000.33817609, 374194.449392315 5692012.7618075, 374190.5211 5692028.0781, 374186.8797 5692037.6394, 374182.610704222 5692050.1790179, 374181.892116669 5692052.69407434, 374175.694299027 5692070.47911627, 374171.472597154 5692080.89863579, 374165.4544264 5692091.22833186, 374162.490252744 5692095.98897439, 374152.152515397 5692109.0546975, 374127.197 5692126.3677, 374108.8928 5692139.6328, 374097.098785442 5692131.02011759, 374086.323838095 5692125.21906354, 374068.204959335 5692112.67522439, 374057.4343 5692105.323, 374049.249824632 5692099.01637733, 374036.288313788 5692081.88669367, 374029.910849257 5692072.3654086, 374022.2691 5692062.4965, 374004.871025728 5692038.81214604, 374003.683827056 5692039.8297449, 373996.899834639 5692045.34173874, 373996.136635492 5692049.24253438, 373988.928643549 5692054.24572879, 373972.318502371 5692033.04574923, 373965.288134667 5692022.85754718, 373956.026280328 5692009.98017827, 373944.541676103 5691998.51343684, 373937.016587809 5691991.34811373, 373931.350286264 5691986.07155779, 373924.754591345 5691979.50584331, 373918.848446349 5691973.53973745, 373900.050715829 5691954.83194822, 373890.666840785 5691964.06592111, 373849.937585098 5691924.40126746, 373831.349004547 5691904.97320263, 373805.564844428 5691878.82926353, 373789.134937747 5691861.32001991, 373801.487349339 5691848.96760832, 373759.633061517 5691806.87346785, 373733.009417114 5691779.53026549, 373704.815450301 5691748.92374358, 373713.083282479 5691739.59593292, 373725.618774786 5691729.9487546, 373748.954436917 5691755.50959358, 373774.01302383 5691782.0868812, 373798.149147215 5691804.49899316, 373802.51787652 5691808.5556699, 373807.60210366 5691813.6839065, 373831.81451845 5691837.682647, 373842.458795054 5691847.71283052, 373865.216245828 5691869.157351, 373888.862942235 5691891.43981446, 373922.98478297 5691923.5930868, 373935.147043721 5691936.87765288, 373966.632992237 5691971.26905201, 373979.962420575 5691985.82848921, 373990.042422418 5691996.83865034, 373998.422113111 5692005.99159954, 374007.658279099 5692016.0800576, 374016.018029933 5692025.21122693, 374031.723718158 5692042.3661998, 374043.465206972 5692055.19116608), (374145.1616 5691963.034, 374157.9885 5691964.1404, 374153.0214 5691949.1144, 374140.9722 5691953.6877, 374145.1616 5691963.034))
I am not an expert, TOUCHES means "none of the points common to both geometries intersect the interiors of both geometries." When you check the picture you see one point interiors the other polygon (marked by red circle)

I assume it is a bug of Oracle 12.1.0.2.0, but I found a workaround:
alter session set spatial_vector_acceleration=TRUE;

Related

dask histogram from zarr file (a big zarr file)

So heres my question, I have a big 3dim array which is 100GB in size as a #zarr file (the array is more than twice the size). I have tried using the histogram from #Dask to calculate but I get an error saying that it cant do it because the file has tuples within tuples. Im guessing thats the zarr file formate rather than anything else?
any thoughts?
edit:
yes the bigger computer thing wouldnt actually work...
Im running a dask client on a single machine, it runsthe calculation but just gets stuck somewhere.
I just tried dask.map function across the file but when I plot it out I get something like this:
ValueError: setting an array element with a sequence.
heres a version of the script:
def histo(img):
return da.histogram(img, bins=255, range=[0, 255])
histo_1 = da.map_blocks(histo, fimg)
I am actually going to try and use it out side of the map function. I wonder rather than the map funtion, does the windowing from map blocks, actually cause the issue. well, ill let you know if it is or now....
edit 2
So I tried to remove the map blocks function as suggested and this was my result:
[in] h, bins =da.histogram(fused_crop, bins=255, range=[0, 255])
[in] bins
[out] array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21.,
22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32.,
33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43.,
44., 45., 46., 47., 48., 49., 50., 51., 52., 53., 54.,
55., 56., 57., 58., 59., 60., 61., 62., 63., 64., 65.,
66., 67., 68., 69., 70., 71., 72., 73., 74., 75., 76.,
77., 78., 79., 80., 81., 82., 83., 84., 85., 86., 87.,
88., 89., 90., 91., 92., 93., 94., 95., 96., 97., 98.,
99., 100., 101., 102., 103., 104., 105., 106., 107., 108., 109.,
110., 111., 112., 113., 114., 115., 116., 117., 118., 119., 120.,
121., 122., 123., 124., 125., 126., 127., 128., 129., 130., 131.,
132., 133., 134., 135., 136., 137., 138., 139., 140., 141., 142.,
143., 144., 145., 146., 147., 148., 149., 150., 151., 152., 153.,
154., 155., 156., 157., 158., 159., 160., 161., 162., 163., 164.,
165., 166., 167., 168., 169., 170., 171., 172., 173., 174., 175.,
176., 177., 178., 179., 180., 181., 182., 183., 184., 185., 186.,
187., 188., 189., 190., 191., 192., 193., 194., 195., 196., 197.,
198., 199., 200., 201., 202., 203., 204., 205., 206., 207., 208.,
209., 210., 211., 212., 213., 214., 215., 216., 217., 218., 219.,
220., 221., 222., 223., 224., 225., 226., 227., 228., 229., 230.,
231., 232., 233., 234., 235., 236., 237., 238., 239., 240., 241.,
242., 243., 244., 245., 246., 247., 248., 249., 250., 251., 252.,
253., 254., 255.])
[in] h.compute
[out] <bound method DaskMethodsMixin.compute of dask.array<sum-aggregate, shape=(255,), dtype=int64, chunksize=(255,), chunktype=numpy.ndarray>>
im going to try in another notebook and see if it still occurs.
edit 3
its the stranges thing, but if I just declare the variable h, it comes out as one small element from the dask array?
edit
Strange, if i call the xarray.hist or the da.hist function, they both fall over. If I use the skimage.exposure.histogram it works but it appears that the zarr file is unpacked before the histogram is a calculated. Which is a bit of a problem...
Update 7th June 2020 (with a solution for not big but annoyingly medium data) see below for answer.
You probably want to use dask's function for this rather than map_blocks. For the latter, Dask expects the output of each call to be the same size as the input block, or a shape derived from the input block, instead of the one-dimensional fixed-size output of histogram.
h, bins =da.histogram(fused_crop, bins=255, range=[0, 255])
h.compute()
Update 7th June 2020 (with a solution for not big but annoyingly medium data):
So unfortunately I got a bit ill around this time and it took a while for me to feel a bit better. Then the pandemic happened and I was on full childcare duty. I tried lots of different option and what ultimately, this looked like was that the following:
1) if just using x.compute, the memory would very quickly fill up.
2) Using distributed would fill the hard drive with spill to disk and take hours but would hang and crash and not do anything because...it would compute (im guessing here but based on the graph and dask api) it would create a sub histogram array for every chunk... that would all need to be merged at some point.
3) The chunking of my data was sub optimal so the amount of tasks was massive but even then I couldn't compute a histogram when i improved the chunking.
In the end I looked for a dynamic way of updating the histogram data. So I used Zarr to do it, by computing to it. Since it allows conccurrent reads and writing functions. As a reminder : my data is a zarr array in 3 dims x,y,z and uncompressed 300GB but compressed it's about 100GB. On my 4 yr old laptop with 16GB of ram using the following worked (I should have said my data was 16 bit unsigned:
imgs = da.from_zarr(.....)
imgs2 = imgs.rechunk((a,b,c)) ## individual chunk dim per dim
h, bins = da.histogram(imgs2, bins = 255, range=[0, 65535]) # binning to 256
h_out = da.to_zarr(h, "histogram.zarr")
I ran the progress bar alongside the process and to get a histogram from file took :
[########################################] | 100% Completed | 18min 47.3s
Which I dont think is too bad for a 300GB array. Hopefully this helps someone else as well, thanks for the help earlier in the year #mdurant.

Fairing data points in 3D

I have a set of data points that are supposed to define a smooth surface. X/Z are specified at intervals and Y is dependent upon Y/Z.
The location of the points is rounded to within a fixed tolerance.
If one draws a curve (e.g. spline) through an X or Z slice, the rounding causes the curves to zigzag or create steps.
For example a set of linear value forming a straight line, when rounded to an integer form a step:
1 1 2 2 3 instead of 1 1.5 2 2.5 3
What would like to do is fair the data to convert the rounded values to real values that produce smooth curves that will define a smooth surface without oscillations.
There are tools to do this on 2D. They look for oscillations in the 2d derivative. The problem this creates in my case is that fairing along an X/Y curves can unfair along an intersecting Y/X curve. I need to create something that will fair along X/Y and Y/Z at the same time.
I was wondering if there anyone knows of algorithms to do this.
Sample Data Set
1392,175.8125,378
1296,161.0625,378
1128,231.375,725.5
1152,233.625,723.8125
1176,235.875,722.125
1200,238.25,720.4375
1224,240.5,718.875
1248,242.875,717.25
1272,245.375,715.625
1296,247.75,714.125
1320,250.25,712.5625
1344,252.8125,711.125
1368,255.375,709.5625
1392,258.0625,708.0625
1416,260.75,706.625
1440,263.5,705.25
1464,266.125,703.8125
1128,100.875,0
1152,101.75,0
1176,102.6875,0
1200,103.5625,0
1224,104.3125,0
1248,105.125,0
1272,105.875,0
1296,106.625,0
1320,107.25,0
1344,107.875,0
1368,108.625,0
1392,109.1875,0
1416,109.8125,0
1440,110.4375,0
1464,111.125,0
1128,115.5,3
1152,116.75,3
1176,117.8125,3
1200,118.875,3
1224,120.0625,3
1248,121.0625,3
1272,122,3
1296,123,3
1320,124,3
1344,125,3
1368,126,3
1392,126.875,3
1416,127.875,3
1440,128.875,3
1464,129.75,3
1128,122.25,6
1152,123.4375,6
1176,124.5625,6
1200,125.75,6
1224,126.875,6
1248,128,6
1272,129.125,6
1296,130.25,6
1320,131.375,6
1344,132.4375,6
1368,133.5,6
1392,134.5625,6
1416,135.625,6
1440,136.625,6
1464,137.625,6
1128,131.375,12
1152,132.6875,12
1176,133.9375,12
1200,135.25,12
1224,136.4375,12
1248,137.6875,12
1272,138.875,12
1296,140.25,12
1320,141.3125,12
1344,142.5,12
1368,143.75,12
1392,145,12
1416,146.1875,12
1440,147.375,12
1464,148.5,12
1128,144.9375,24
1152,146.25,24
1176,147.5,24
1200,148.75,24
1224,150.1875,24
1248,151.4375,24
1272,152.75,24
1296,154.125,24
1320,155.4375,24
1344,156.75,24
1368,158,24
1392,159.25,24
1416,160.5625,24
1440,161.875,24
1464,163.125,24
1128,161.625,48
1152,162.8125,48
1176,164.1875,48
1200,165.625,48
1224,166.9375,48
1248,168.3125,48
1272,169.75,48
1296,171.25,48
1320,172.6875,48
1344,174,48
1368,175.375,48
1392,176.75,48
1416,178.1875,48
1440,179.625,48
1464,181.0625,48
1128,168.75,72
1152,170.25,72
1176,171.75,72
1200,173.25,72
1224,174.875,72
1248,176.375,72
1272,178,72
1296,179.5,72
1320,181.1875,72
1344,182.75,72
1368,184.25,72
1392,185.8125,72
1416,187.5,72
1440,189.125,72
1464,190.75,72
1128,170.1875,96
1152,171.875,96
1176,173.5,96
1200,175.25,96
1224,176.875,96
1248,178.75,96
1272,180.5,96
1296,182.25,96
1320,184,96
1344,185.75,96
1368,187.5625,96
1392,189.3125,96
1416,191.125,96
1440,193,96
1464,194.9375,96
1128,169.0625,120
1152,170.8125,120
1176,172.75,120
1200,174.625,120
1224,176.5,120
1248,178.375,120
1272,180.3125,120
1296,182.625,120
1320,184.25,120
1344,186.25,120
1368,188.125,120
1392,190.1875,120
1416,192.125,120
1440,194.25,120
1464,196.3125,120
1128,166.625,144
1152,168.625,144
1176,170.625,144
1200,172.625,144
1224,174.75,144
1248,176.75,144
1272,178.8125,144
1296,181,144
1320,183.0625,144
1344,185.25,144
1368,187.4375,144
1392,189.5,144
1416,191.75,144
1440,194,144
1464,196.3125,144
1128,163.75,168
1152,165.75,168
1176,168,168
1200,170.1875,168
1224,172.4375,168
1248,174.625,168
1272,176.75,168
1296,179.125,168
1320,181.375,168
1344,183.625,168
1368,186,168
1392,188.625,168
1416,190.75,168
1440,193.125,168
1464,195.625,168
1128,160.5625,192
1152,162.875,192
1176,165.1875,192
1200,167.5,192
1224,169.875,192
1248,172.25,192
1272,174.625,192
1296,177.0625,192
1320,179.4375,192
1344,181.9375,192
1368,184.4375,192
1392,186.875,192
1416,189.5,192
1440,192.0625,192
1464,194.6875,192
1128,157.3125,216
1152,159.8125,216
1176,162.3125,216
1200,164.8125,216
1224,167.25,216
1248,169.6875,216
1272,172.3125,216
1296,174.875,216
1320,177.3125,216
1344,179.9375,216
1368,182.625,216
1392,185.25,216
1416,188,216
1440,190.8125,216
1464,193.5625,216
1128,154.1875,240
1152,156.75,240
1176,159.375,240
1200,161.9375,240
1224,164.5,240
1248,167.1875,240
1272,169.875,240
1296,172.625,240
1320,175.4375,240
1344,178.0625,240
1368,180.875,240
1392,183.6875,240
1416,186.5,240
1440,189.5,240
1464,192.4375,240
1128,151,264
1152,153.6875,264
1176,156.4375,264
1200,159.125,264
1224,161.875,264
1248,164.75,264
1272,167.5,264
1296,170.3125,264
1320,173.25,264
1344,176.125,264
1368,179.125,264
1392,182.0625,264
1416,185.125,264
1440,188.1875,264
1464,191.3125,264
1128,147.6875,288
1152,150.5,288
1176,153.3125,288
1200,156.1875,288
1224,159.125,288
1248,162.0625,288
1272,165.0625,288
1296,168.125,288
1320,171.1875,288
1344,174.25,288
1368,177.3125,288
1392,180.5,288
1416,183.6875,288
1440,186.9375,288
1464,190.25,288
1128,143.625,318
1152,146.6875,318
1176,149.6875,318
1200,152.75,318
1224,155.875,318
1248,159,318
1272,162.25,318
1296,165.625,318
1320,168.875,318
1344,172.125,318
1368,175.375,318
1392,178.75,318
1416,182.125,318
1440,185.6875,318
1464,189.1875,318
1128,139.875,348
1152,143.125,348
1176,146.3125,348
1200,149.5,348
1224,152.9375,348
1248,156.1875,348
1272,159.75,348
1296,163.1875,348
1320,166.625,348
1344,170.125,348
1368,173.75,348
1392,177.125,348
1416,180.75,348
1440,184.5,348
1464,188.25,348
1128,136.25,378
1152,139.6875,378
1176,143.125,378
1200,146.5625,378
1224,150.125,378
1248,153.6875,378
1272,157.375,378
1320,164.6875,378
1344,168.3125,378
1368,172.0625,378
1416,179.625,378
1440,183.5,378
1464,187.4375,378
1128,132.5625,415.25
1152,136.125,415.25
1176,139.8125,415.25
1200,143.4375,415.25
1224,147.1875,415.25
1248,151,415.25
1272,154.875,415.25
1296,158.6875,415.25
1320,162.625,415.25
1344,166.5625,415.25
1368,170.5,415.25
1392,174.375,415.25
1416,178.5625,415.25
1440,182.6875,415.25
1464,186.875,415.25
1128,130.9375,444
1152,134.625,444
1176,138.625,444
1200,142.1875,444
1224,146,444
1248,149.9375,444
1272,153.9375,444
1296,157.9375,444
1320,162,444
1344,166,444
1368,170.125,444
1392,174.25,444
1416,178.375,444
1440,182.625,444
1464,186.875,444
1128,130.8125,474
1152,134.625,474
1176,138.5625,474
1200,142.5,474
1224,146.4375,474
1248,150.5,474
1272,154.5625,474
1296,158.6875,474
1320,162.875,474
1344,166.9375,474
1368,171.25,474
1392,175.5,474
1416,179.75,474
1440,184,474
1464,188.375,474
1128,132.1875,501
1152,136.125,501
1176,140.125,501
1200,144.1875,501
1224,148.25,501
1248,152.375,501
1272,156.5,501
1296,160.75,501
1320,165,501
1344,169.25,501
1368,173.5625,501
1392,177.75,501
1416,182.3125,501
1440,186.75,501
1464,191.125,501
1128,135.25,528
1152,139.375,528
1176,143.375,528
1200,147.5,528
1224,151.625,528
1248,155.8125,528
1272,160,528
1296,164.25,528
1320,168.625,528
1344,172.875,528
1368,177.25,528
1392,181.625,528
1416,186.25,528
1440,190.625,528
1464,195.125,528
1128,142.125,564
1152,146.25,564
1176,150.4375,564
1200,154.5625,564
1224,158.6875,564
1248,162.9375,564
1272,167.1875,564
1296,171.5,564
1320,176.0625,564
1344,180.375,564
1368,184.875,564
1392,189.25,564
1416,193.75,564
1440,198.3125,564
1464,202.8125,564
1128,153.4375,600
1152,157.5,600
1176,161.75,600
1200,165.9375,600
1224,170.125,600
1248,174.25,600
1272,178.625,600
1296,182.9375,600
1320,187.25,600
1344,191.625,600
1368,196,600
1392,200.375,600
1416,204.75,600
1440,209.25,600
1464,213.375,600
1128,169.4375,636
1152,173.4375,636
1176,177.5625,636
1200,181.6875,636
1224,185.875,636
1248,190.0625,636
1272,194.25,636
1296,198.375,636
1320,202.375,636
1344,206.75,636
1368,211,636
1392,215.3125,636
1416,219.5,636
1440,223.8125,636
1464,228.0625,636
1128,190.25,672
1152,194.1875,672
1176,198.25,672
1200,202.125,672
1224,206.1875,672
1248,210.125,672
1272,214.1875,672
1296,218.1875,672
1320,222.1875,672
1344,226.25,672
1368,230.3125,672
1392,234.375,672
1416,238.375,672
1440,242.5,672
1464,246.5625,672
1128,207.0625,696
1152,211,696
1176,214.875,696
1200,218.75,696
1224,222.625,696
1248,226.5625,696
1272,230.4375,696
1296,234.3125,696
1320,238.125,696
1344,242,696
1368,245.75,696
1392,249.75,696
1416,253.5,696
1440,257.375,696
1464,261.125,696

SDO_BUFFER does not work correct with multipolygons

I have a table with two columns (both are SDO_GEOMETRY type): GEOMETRY, GEOMETRY_BUF. DIMs described here.
GEOMETRY has a multipolygon's data, and GEOMETRY_BUF initially is null.
In this case, multipolygon consists of three polygons. Two of them are rather close each other and the third rather far away of them.
If I make a picture of GEOMETRY, I see this multipolygon.
I want to make a buffer (40 Meters) around source GEOMETRY and store it in GEOMETRY_BUF column.
When I do
UPDATE <table_name> o
SET GEOMETRY_buf =
SDO_GEOM.sdo_buffer (o.geometry,
40,
0.005,
'unit=Meter')
I get this result. Two closest polygons are buffered and the third is not. Why? Is it correct work of SDO_BUFFER? How can I get buffer for all polygons in multipolygon?
For example I exported my multipolygon in WKT:
MULTIPOLYGON (((11517.3061 -9316.7092, 11529.4693 -9333.942, 11555.3268 -9327.1603, 11562.6917 -9326.0185, 11566.605 -9324.4166, 11571.5728 -9322.2463, 11586.1288 -9304.1955, 11586.3399 -9301.5948, 11587.3251 -9298.9264, 11592.4594 -9286.2345, 11593.9652 -9284.8561, 11595.4255 -9284.1372, 11596.5791 -9283.6721, 11599.1906 -9272.413, 11598.7147 -9270.787, 11598.6688 -9269.7593, 11598.9953 -9267.4162, 11599.2833 -9260.5784, 11600.4061 -9254.4651, 11600.8117 -9252.2374, 11601.9351 -9246.7015, 11604.1515 -9232.7613, 11607.0962 -9232.6711, 11615.6972 -9170.744, 11616.4172 -9162.8411, 11616.6891 -9158.0432, 11627.6428 -9094.6279, 11629.6001 -9095.5922, 11629.3366 -9092.1316, 11631.5555 -9082.0765, 11632.8241 -9083.1318, 11634.5937 -9075.8674, 11635.0901 -9073.2819, 11635.9144 -9070.4804, 11636.6806 -9067.7817, 11638.1409 -9061.6117, 11633.7683 -9058.316, 11646.0166 -9040.509, 11641.0401 -9037.0454, 11653.3747 -9021.7212, 11650.196 -9018.1182, 11648.4066 -9018.2336, 11644.782 -9015.2088, 11650.852 -9010.3256, 11654.2871 -9009.2253, 11669.9179 -9010.2253, 11720.1392 -9016.1985, 11731.7194 -9017.3642, 11731.5166 -9019.2802, 11736.6782 -9019.9719, 11736.7853 -9018.7664, 11749.4779 -9021.0705, 11765.8132 -9026.2263, 11857.5513 -9037.9299, 11966.7418 -9051.5303, 11972.4873 -9052.451, 11994.0993 -9055.6882, 11996.1523 -9056.1488, 11999.63 -9053.9715, 12003.9456 -9053.3434, 12014.7974 -9053.8877, 12017.661 -9054.3485, 12022.7308 -9054.8928, 12025.161 -9054.8928, 12031.1944 -9055.2278, 12035.5519 -9057.4889, 12038.6524 -9061.0479, 12043.7444 -9060.8216, 12077.8782 -9062.1275, 12084.4548 -9063.3493, 12113.8626 -9063.9861, 12128.2805 -9064.1125, 12130.3243 -9063.9469, 12150.4336 -9063.2307, 12167.0437 -9062.4302, 12176.091 -9062.2625, 12199.5307 -9059.4819, 12202.6969 -9059.2285, 12231.4571 -9055.896, 12243.5404 -9054.5544, 12245.7198 -9053.4103, 12274.8773 -9048.3674, 12290.6727 -9050.8067, 12294.9517 -9050.0068, 12327.292 -9042.063, 12344.4067 -9037.7978, 12346.242 -9037.4565, 12391.9687 -9023.8071, 12398.1063 -9020.9474, 12408.3162 -9018.1104, 12429.1036 -9011.8187, 12430.8981 -9011.0625, 12449.412 -9003.7979, 12452.021 -9002.1045, 12469.1388 -8995.9601, 12477.3695 -8991.5786, 12485.0655 -8987.2142, 12490.8813 -8986.5569, 12496.5895 -8984.2888, 12500.2345 -8981.4022, 12496.6582 -8979.3404, 12503.9482 -8976.8661, 12505.9427 -8974.873, 12508.5561 -8973.5671, 12526.9668 -8964.5841, 12527.7841 -8964.1724, 12527.0391 -8962.6698, 12525.9945 -8959.9635, 12545.0275 -8949.9202, 12537.6746 -8935.4885, 12522.0017 -8943.8274, 12519.5198 -8939.6064, 12516.6895 -8940.6073, 12515.3832 -8940.4332, 12514.0541 -8941.2897, 12508.3293 -8944.0449, 12495.4599 -8950.4538, 12468.1586 -8962.986, 12444.6639 -8972.5394, 12428.2482 -8978.8925, 12400.9305 -8988.7393, 12394.4426 -8991.1326, 12388.8952 -8994.0223, 12383.4503 -8997.1529, 12378.6102 -8999.4454, 12364.5548 -9003.9435, 12352.9546 -9007.5255, 12338.5855 -9011.7029, 12326.9941 -9014.5796, 12316.5813 -9017.4109, 12306.2679 -9019.8897, 12275.8562 -9026.4099, 12245.4496 -9031.7417, 12244.8164 -9031.1515, 12243.7607 -9028.9633, 12243.4366 -9024.2847, 12242.5967 -9013.3541, 12241.7196 -9002.0434, 12240.8619 -8990.8109, 12240.6915 -8987.5548, 12240.2224 -8985.5038, 12239.1962 -8982.6324, 12236.5281 -8979.1164, 12233.2102 -8975.5594, 12224.3816 -8967.0235, 12219.2801 -8962.2476, 12216.6083 -8958.9244, 12215.4355 -8956.4339, 12214.7318 -8952.6542, 12214.3789 -8946.7751, 12213.9674 -8943.4579, 12205.4844 -8943.3108, 12193.6645 -8942.6623, 12187.8324 -8942.4268, 12179.0549 -8941.8675, 12178.5575 -8952.025, 12173.9688 -8951.9348, 12173.2373 -8956.6863, 12137.179 -8956.148, 12096.9046 -8955.5806, 12072.6849 -8955.0751, 12071.8174 -8959.7383, 12071.0884 -8962.767, 12069.4055 -8966.8211, 12066.5207 -8971.7762, 12055.2777 -8987.8869, 12053.1284 -8993.4112, 12047.2713 -9017.5838, 12044.7177 -9027.5265, 12042.7207 -9032.159, 12041.0314 -9034.3577, 12030.2937 -9033.259, 12025.1998 -9032.5631, 12018.5597 -9031.8282, 12008.7749 -9030.5464, 11993.9822 -9028.8158, 11964.1147 -9025.1168, 11931.9949 -9021.2305, 11903.2389 -9017.5607, 11869.9007 -9013.3788, 11854.2524 -9011.4378, 11849.3783 -9010.7419, 11833.972 -9008.9627, 11820.2536 -9007.0812, 11811.0943 -9006.0119, 11806.4564 -9005.5227, 11799.3724 -9004.726, 11788.9519 -9003.4448, 11779.9774 -9002.3294, 11762.6791 -9000.302, 11745.7853 -8998.3151, 11733.713 -8996.7672, 11720.8818 -8995.3079, 11710.4156 -8993.782, 11704.9489 -8993.0308, 11701.0088 -8992.5708, 11695.6894 -8992.0022, 11695.4709 -8993.2528, 11673.4915 -8989.4577, 11658.8434 -8987.8902, 11651.3959 -8987.6881, 11643.9279 -8988.2379, 11638.6407 -8990.2075, 11633.2176 -8995.5848, 11627.7199 -9005.2128, 11630.2139 -9006.0015, 11633.1601 -9005.7462, 11631.4338 -9009.3567, 11629.8444 -9013.3731, 11628.1059 -9022.7272, 11620.7125 -9065.8639, 11612.6646 -9112.3891, 11606.0407 -9149.0436, 11598.7388 -9190.8477, 11593.518 -9190.0813, 11593.4893 -9190.3618, 11591.7738 -9202.1942, 11589.7359 -9216.182, 11592.211 -9216.5848, 11591.4994 -9221.1432, 11590.0714 -9231.6108, 11588.6906 -9239.0181, 11586.804 -9249.3457, 11584.3679 -9262.3566, 11581.9729 -9275.2702, 11580.8806 -9278.5236, 11579.6367 -9283.8945, 11578.7402 -9287.6448, 11576.8692 -9293.0215, 11576.206 -9294.8746, 11577.4629 -9295.5171, 11576.1189 -9297.1819, 11574.2319 -9299.1565, 11570.3322 -9302.0706, 11566.4074 -9303.6443, 11517.3061 -9316.7092)), ((10538.4742 -8841.2167, 10538.6639 -8841.5457, 10544.9465 -8853.5, 10551.3783 -8872.8042, 10554.5243 -8884.1815, 10555.2509 -8885.8567, 10557.827 -8886.6746, 10559.0489 -8888.9592, 10571.6983 -8902.7622, 10574.545 -8905.3676, 10580.8993 -8903.8126, 10597.1667 -8902.4227, 10616.3734 -8901.9774, 10635.512 -8901.6073, 10637.4876 -8901.9308, 10638.6234 -8903.6374, 10639.3915 -8906.6898, 10642.8334 -8906.4259, 10648.2058 -8905.5424, 10665.7825 -8907.31, 10681.0741 -8909.263, 10681.6512 -8909.2836, 10682.1315 -8909.2608, 10693.8507 -8910.3155, 10731.3851 -8914.7496, 10733.0698 -8915.0904, 10735.9988 -8915.7746, 10750.5638 -8917.5374, 10753.8272 -8917.8934, 10757.1473 -8918.3705, 10787.7923 -8922.1505, 10794.3772 -8923.1417, 10815.6217 -8925.8811, 10816.9768 -8926.095, 10818.1847 -8926.3152, 10850.1503 -8930.1685, 10851.2995 -8930.3241, 10852.1192 -8930.4447, 10868.2313 -8932.2611, 10869.3052 -8932.3788, 10870.1776 -8932.4695, 10905.0859 -8936.5665, 10907.4676 -8936.6715, 10910.3953 -8936.6376, 10939.4131 -8939.2791, 10940.8482 -8939.4525, 10950.2279 -8940.0207, 10952.7124 -8940.8332, 10959.8717 -8942.8604, 10975.9668 -8944.922, 10981.9756 -8945.3701, 11000.7514 -8947.7017, 11009.3897 -8948.7799, 11015.5355 -8949.6099, 11043.6417 -8952.9002, 11044.5144 -8952.9856, 11045.2173 -8953.0615, 11067.3801 -8955.8486, 11088.9024 -8958.4083, 11092.6234 -8958.7459, 11095.6822 -8958.9571, 11135.1145 -8963.8183, 11140.6309 -8964.0983, 11145.0648 -8964.3669, 11162.6926 -8966.6076, 11163.3881 -8966.7434, 11164.0096 -8966.8596, 11180.5324 -8969.1097, 11199.5574 -8971.4323, 11221.0843 -8974.2465, 11239.2522 -8976.8548, 11245.1983 -8978.5082, 11251.235 -8980.8821, 11250.3725 -8978.6263, 11246.1124585523 -8971.80830570151, 11242.56 -8969.44, 11231.7364552193 -8948.84886602689, 11217.0541 -8925.6894, 11213.3112 -8917.3115, 11210.1468 -8918.8818, 11205.3016 -8920.782, 11199.9478 -8922.4514, 11191.2742 -8923.3632, 11183.0279 -8922.6215, 11106.6557 -8912.6317, 11082.6826 -8909.0616, 11075.3835 -8908.3282, 11065.6164 -8907.122, 11051.3778 -8905.5613, 11013.6152 -8900.7517, 10936.1757 -8890.3295, 10931.6433 -8889.8599, 10905.6915 -8886.3948, 10903.3464 -8885.8436, 10875.8391 -8882.2496, 10874.6141 -8894.5925, 10864.2529 -8893.1555, 10845.4027 -8891.1401, 10841.7585 -8890.7481, 10828.2582 -8889.1333, 10807.0956 -8886.6983, 10797.1383 -8885.9752, 10793.1993 -8885.8332, 10786.118 -8885.2747, 10773.3137 -8884.339, 10773.5838 -8873.6785, 10774.3714 -8870.8341, 10772.3193 -8870.678, 10736.8864 -8866.4972, 10720.866 -8864.9853, 10699.0454 -8862.6108, 10676.7543 -8860.422, 10635.4306 -8856.0725, 10621.9695 -8853.8424, 10618.4888 -8853.2852, 10606.0549 -8851.5404, 10565.5093 -8843.3367, 10540.9357 -8838.9567, 10538.4742 -8841.2167)), ((10221.8371 -8957.8509, 10217.1186 -8962.6979, 10219.0379729471 -8964.10190901034, 10220.6004 -8961.6653, 10232.954 -8970.56, 10233.8362905777 -8971.28528018161, 10235.2527 -8969.9665, 10240.0855 -8966.6092, 10244.616 -8964.6875, 10255.769 -8961.7291, 10268.9498 -8959.8529, 10290.5463 -8956.7022, 10301.3344 -8955.6404, 10321.9246 -8952.0537, 10331.5377 -8949.8614, 10345.8532 -8947.2152, 10347.3674 -8947.0233, 10349.2175 -8946.8118, 10358.8055 -8945.0906, 10372.8704 -8942.2893, 10374.694 -8941.9433, 10377.1011 -8941.5033, 10380.9646 -8940.7237, 10380.428 -8938.4085, 10380.6233 -8937.3177, 10382.1165 -8935.5334, 10383.1352 -8934.4308, 10386.9636 -8933.4023, 10423.2803 -8926.4318, 10452.4406 -8920.8922, 10481.5725 -8915.3077, 10487.8745 -8914.5586, 10491.0085 -8913.9281, 10505.4779 -8913.9322, 10501.0623 -8883.1909, 10493.401 -8890.3654, 10491.2496 -8892.2846, 10481.7211 -8898.5785, 10476.3494 -8901.8754, 10468.6564 -8903.8349, 10440.8296 -8909.3713, 10425.5145 -8911.9444, 10397.8383 -8917.0854, 10397.5418 -8915.6779, 10391.6426 -8916.0696, 10385.1585 -8917.1572, 10384.9504 -8915.73, 10379.3754 -8916.7551, 10379.7809 -8918.4479, 10373.2752 -8919.8289, 10366.7923 -8921.4868, 10366.8454 -8922.952, 10360.5463 -8924.1291, 10359.3586 -8915.993, 10356.6492 -8916.5285, 10349.5194 -8917.7408, 10350.0602 -8920.6712, 10348.4466 -8920.9851, 10349.0963 -8925.2217, 10348.7279 -8926.2747, 10304.2728 -8934.49, 10302.8419 -8934.7084, 10300.8211 -8934.5268, 10298.7765 -8932.7239, 10296.5626 -8930.0269, 10287.0894 -8932.3249, 10287.0894 -8936.0426, 10286.2385 -8938.1585, 10284.9042 -8939.4247, 10271.4539 -8942.1365, 10270.3542 -8942.3011, 10261.2789 -8944.0258, 10239.8799 -8947.9821, 10237.935 -8948.5705, 10226.9395 -8953.7191, 10221.8371 -8957.8509)))

SPSS: Syntax for Calculating FSCORE from rotated factors

I found the proper syntax to import my centriod factor extraction into SPSS and rotate it. (The semi-bumbling tale is here.
The next issue is this: because of limitations in SPSS on what subcommands can be used when reading a matrix in (only /ROTATE and /EXTRACTION are permitted), I can't get the factor scores. SPSS displays this error:
"Factor scores cannot be computed with matrix input."
I still need to find a way to get the FSCORE of the newly rotated factors of each factor for all cases by running a regression using the newly rotated factors and saving the regression values as a new variable (/SAVE REG(ALL).
Ideas are welcome. Thank you for your expertise!
Assets: Dataset A of 36 cases and 74 variables (the basis of the centriod factor extraction); centriod factor extraction matrix
Here's the SPSS syntax that almost does what I need - except it uses PCA extraction instead of centroid.
FACTOR
/VARIABLES VAR00001 VAR00002 VAR00003 VAR00004 VAR00005 VAR00006 VAR00007 VAR00008 VAR00009 VAR00010 VAR00011 VAR00012 VAR00013 VAR00014 VAR00015 VAR00016 VAR00017 VAR00018 VAR00019 VAR00020 VAR00021 VAR00022 VAR00023 VAR00024 VAR00025 VAR00026 VAR00027 VAR00028 VAR00029 VAR00030 VAR00031 VAR00032 VAR00033 VAR00034 VAR00035 VAR00036 VAR00037 VAR00038 VAR00039 VAR00040 VAR00041 VAR00042 VAR00043 VAR00044 VAR00045 VAR00046 VAR00047 VAR00048 VAR00049 VAR00050 VAR00051 VAR00052 VAR00053 VAR00054 VAR00055 VAR00056 VAR00057 VAR00058 VAR00059 VAR00060 VAR00061 VAR00062 VAR00063 VAR00064 VAR00065 VAR00066 VAR00067 VAR00068 VAR00069 VAR00070 VAR00071 VAR00072 VAR00073 VAR00074
/MISSING LISTWISE
/ANALYSIS VAR00001 VAR00002 VAR00003 VAR00004 VAR00005 VAR00006 VAR00007 VAR00008 VAR00009 VAR00010 VAR00011 VAR00012 VAR00013 VAR00014 VAR00015 VAR00016 VAR00017 VAR00018 VAR00019 VAR00020 VAR00021 VAR00022 VAR00023 VAR00024 VAR00025 VAR00026 VAR00027 VAR00028 VAR00029 VAR00030 VAR00031 VAR00032 VAR00033 VAR00034 VAR00035 VAR00036 VAR00037 VAR00038 VAR00039 VAR00040 VAR00041 VAR00042 VAR00043 VAR00044 VAR00045 VAR00046 VAR00047 VAR00048 VAR00049 VAR00050 VAR00051 VAR00052 VAR00053 VAR00054 VAR00055 VAR00056 VAR00057 VAR00058 VAR00059 VAR00060 VAR00061 VAR00062 VAR00063 VAR00064 VAR00065 VAR00066 VAR00067 VAR00068 VAR00069 VAR00070 VAR00071 VAR00072 VAR00073 VAR00074
/PRINT INITIAL CORRELATION SIG DET INV REPR AIC EXTRACTION ROTATION FSCORE
/FORMAT BLANK(.544)
/CRITERIA FACTORS(6) ITERATE(80)
/EXTRACTION PC <---Here's the rub.
/CRITERIA ITERATE(80) DELTA(0)
/ROTATION OBLIMIN
/SAVE REG(ALL)
/METHOD=CORRELATION.
I referred to the MATRIX command in my reply to your other post (Rotations). You will need to research the appropriate equations for performing this calculation and set up the matrix algebra within a MATRIX END - MATRIX code block. Easy once you have the math right. I'm too busy/lazy to research and write it but this should provide a fertile lead.

Smoothing measured data in MATLAB?

I have measured data from MATLAB and I'm wondering how to best smooth the data?
Example data (1st colum=x-data / second-colum=y-data):
33400 209.11
34066 210.07
34732 212.3
35398 214.07
36064 215.61
36730 216.95
37396 218.27
38062 219.52
38728 220.11
39394 221.13
40060 221.4
40726 222.5
41392 222.16
42058 223.29
42724 222.77
43390 223.97
44056 224.42
44722 225.4
45388 225.32
46054 225.98
46720 226.7
47386 226.53
48052 226.61
48718 227.43
49384 227.84
50050 228.41
50716 228.57
51382 228.92
52048 229.67
52714 230.02
53380 229.54
54046 231.19
54712 231.00
55378 231.5
56044 231.5
56710 231.79
57376 232.26
58042 233.12
58708 232.65
59374 233.51
60040 234.16
60706 234.21
The data in the second column should be monoton but it isn't. How to make it smooth?
I could probably invent a short algorithm myself but I think it's a better way to use an established and proven one... do you know a good way to somehow integrate the outliners to make it a monoton curve!?
Thanks in advance
Monotone in your case is always increasing!
See the options below (1. Cobb-Douglas; 2. Quadratic; 3. Cubic)
clear all
close all
load needSmooth.dat % Your data
x=needSmooth(:,1);
y=needSmooth(:,2);
n=length(x);
% Figure 1
logX=log(x);
logY=log(y);
Y=logY;
X=[ones(n,1),logX];
B=regress(Y,X);
a=exp(B(1,1));
b=B(2,1);
figure(1)
plot(x,y,'k*')
hold
for i=1:n-1
plot([x(i,1);x(i+1,1)],[a*x(i,1)^b;a*x(i+1,1)^b],'k-')
end
%Figure 2
X=[ones(n,1),x,x.*x];
Y=y;
B=regress(Y,X);
c=B(1,1);
b=B(2,1);
a=B(3,1);
figure(2)
plot(x,y,'k*')
hold
for i=1:n-1
plot([x(i,1);x(i+1,1)],[c+b*x(i,1)+a*x(i,1)^2; c+b*x(i+1,1)+a*x(i+1,1)^2],'k-')
end
%Figure 3
X=[ones(n,1),x,x.*x,x.*x.*x];
Y=y;
B=regress(Y,X);
d=B(1,1);
c=B(2,1);
b=B(3,1);
a=B(4,1);
figure(3)
plot(x,y,'k*')
hold
for i=1:n-1
plot([x(i,1);x(i+1,1)],[d+c*x(i,1)+b*x(i,1)^2+a*x(i,1)^3; d+c*x(i+1,1)+b*x(i+1,1)^2+a*x(i+1,1)^3],'k-')
end
There are also some cooked functions in Matlab such as "smooth" and "spline" that should also work in your case since your data is almost monotone.

Resources