C3D-0282 · 260714 Huckaby: what is forcing the 3020 ft point spread done
READ-ONLY. Sorts the CogoPoints by easting, reports every gap over 150 ft, lists the westernmost and easternmost points with descriptions, and measures the main cluster with the scale it would need.
C# payload
// The points span 3020 ft E-W but only 598 N-S. What is out at the far end?
var cdoc = CivilApplication.ActiveDocument;
var pts = new List<Tuple<double,double,uint,string>>();
foreach (ObjectId id in cdoc.CogoPoints) {
var p = Tx.GetObject(id, OpenMode.ForRead) as CogoPoint;
if (p == null) continue;
pts.Add(Tuple.Create(p.Easting, p.Northing, p.PointNumber, p.RawDescription ?? ""));
}
// bucket by easting to find the clusters
pts.Sort((a,b) => a.Item1.CompareTo(b.Item1));
Log("points sorted by easting - looking for the gap:");
double prev = pts[0].Item1;
for (int i = 1; i < pts.Count; i++) {
double gap = pts[i].Item1 - prev;
if (gap > 150)
Log(string.Format(" GAP {0:F0} ft between E={1:F1} and E={2:F1} (pt {3} \"{4}\")",
gap, prev, pts[i].Item1, pts[i].Item3, pts[i].Item4));
prev = pts[i].Item1;
}
Log("");
Log("--- the 12 westernmost ---");
for (int i = 0; i < Math.Min(12, pts.Count); i++)
Log(string.Format(" E={0:F1} N={1:F1} pt {2,4} \"{3}\"", pts[i].Item1, pts[i].Item2, pts[i].Item3, pts[i].Item4));
Log("--- the 12 easternmost ---");
for (int i = Math.Max(0, pts.Count-12); i < pts.Count; i++)
Log(string.Format(" E={0:F1} N={1:F1} pt {2,4} \"{3}\"", pts[i].Item1, pts[i].Item2, pts[i].Item3, pts[i].Item4));
// how big is the MAIN cluster if the outliers are dropped?
Log("");
double med = pts[pts.Count/2].Item1;
var core = pts.FindAll(t => Math.Abs(t.Item1 - med) < 500);
double cx0=1e30,cy0=1e30,cx1=-1e30,cy1=-1e30;
foreach (var t in core) {
if (t.Item1<cx0)cx0=t.Item1; if (t.Item2<cy0)cy0=t.Item2;
if (t.Item1>cx1)cx1=t.Item1; if (t.Item2>cy1)cy1=t.Item2;
}
Log(string.Format("MAIN CLUSTER ({0} of {1} points): {2:F1} x {3:F1} ft", core.Count, pts.Count, cx1-cx0, cy1-cy0));
double need = Math.Max((cx1-cx0)/16.34, (cy1-cy0)/10.34);
Log(string.Format(" fits the border at 1\"={0:F1}'", need));
Result
Log
points sorted by easting - looking for the gap: GAP 323 ft between E=2203483.9 and E=2203807.1 (pt 512 "TML") GAP 1048 ft between E=2203820.0 and E=2204867.8 (pt 402 "TML") GAP 1331 ft between E=2204887.6 and E=2206218.4 (pt 154 "STEP") --- the 12 westernmost --- E=2203404.0 N=1207371.1 pt 501 "TML" E=2203437.0 N=1206804.9 pt 509 "4INPOST OFF" E=2203438.7 N=1206809.8 pt 510 "IPF 4" POST" E=2203439.8 N=1206998.2 pt 506 "GAS" E=2203440.5 N=1207033.1 pt 505 "FL" E=2203441.9 N=1207062.5 pt 504 "FL" E=2203443.2 N=1207293.4 pt 500 "IPF" E=2203443.2 N=1207293.5 pt 406 "OTP" E=2203443.9 N=1207051.6 pt 507 "TML" E=2203444.1 N=1207088.1 pt 503 "FL" E=2203468.8 N=1207317.5 pt 405 "FC" E=2203469.9 N=1207294.4 pt 404 "FC" --- the 12 easternmost --- E=2206409.9 N=1206994.5 pt 350 "CL" E=2206410.2 N=1207386.5 pt 362 "EP" E=2206411.5 N=1207040.8 pt 351 "CL" E=2206413.2 N=1207086.5 pt 102 "CL" E=2206413.5 N=1207092.6 pt 352 "CL" E=2206415.1 N=1207135.8 pt 353 "CL" E=2206417.2 N=1207207.4 pt 354 "CL" E=2206418.9 N=1207267.7 pt 355 "CL" E=2206419.8 N=1207305.2 pt 356 "CL" E=2206420.9 N=1207345.8 pt 357 "CL" E=2206422.4 N=1207403.4 pt 358 "TML" E=2206424.2 N=1207086.0 pt 103 "EP" MAIN CLUSTER (133 of 151 points): 205.8 x 515.0 ft fits the border at 1"=49.8'
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.