私のリストには緯度経度の巨大なデータが含まれており、ファーム内のデータを扱っています。私は 小数点以下6桁のデータをフィルタリングすることを決めたので、私は1メートルまでの精度が必要な場合があります。フィルタLat条件と平均に基づいた長い値
私は、6桁まで同じlat lon値を持つレコードの平均緯度値を取る必要があります。
Sample data :
148.0155503
148.0155504
148.0155506
148.0155507
148.0155508
148.015551
148.0155511
148.0155513
148.0155514
148.0155515
148.0155517
148.0155518
148.0155519
148.0155521
148.0155522
148.0155524
148.0155525
148.0155526
148.0155528
だから出力は、第2のように以下の値の平均値等
148.0155503
148.0155504
148.0155506
148.0155507
148.0155508
リスト内の最初の対象として以下の値の平均値のようになる..
148.015551
148.0155511
148.0155513
148.0155514
148.0155515
148.0155517
148.0155518
148.0155519
だから最終出力は次のようになります
148.0155505
148.0155514
.
.
.
注:ここではlon値だけを取っていますが、latにも同じ条件を適用する必要があります。
私は、以下の方法を試してみましたが、それは
var filteredList = soilData
.Skip(1)
.Aggregate(
soilData.Take(1).ToList(),
(a, x) =>
{
if (Math.Abs(x.Latitude-a.Last().Latitude) >= Convert.ToDecimal(.000001))
{
a.Add(x);
}
return a;
});
この方法は、いくつかの間違ったデータを、どのようにこの中で平均を取ることもありませんアイデアを返し仕事doesntの。 誰かがこれを解決するのを助けることができますか?
「148.0155506」は「148.015551」(つまり、中点丸め)? –
@StephenMuecke 148.0155506は処理されません148.105551 –