profile_normalise — PROFILE frame op

• Data kinds: pairs → pairs

• Call: import fullseye as fs; fs.ledger.profile_normalise(contour) (implementation को सीधे call करना हो तो import profileops; profileops.profile_normalise(contour), registry से लेना हो तो opsprofile.get("profile_normalise"))

उपयोग

rotation और translation से normalise करता है ताकि chord की लंबाई 1 हो, leading edge origin पर हो और chord +x की ओर हो।

scale केवल chord length से बदला जाता है (shape विकृत नहीं होता)। normalise किया हुआ contour लौटाता है।

प्रक्रिया: profile_chord_frame से leading edge le, trailing edge te (खुले trailing edge में gap का मध्यबिंदु), chord length chord और chord की दिशा angle_deg निकालकर ((contour - le) @ R(-angle).T) / chord लौटाया जाता है। यह केवल rotation, translation और uniform scale का similarity transform है, points की संख्या और क्रम बना रहता है (resampling नहीं)।

• contour: (N, 2) के (x, y), 8 या अधिक points, finite। (row, col) देने पर chord तो मिल जाता है पर ऊपर-नीचे उलट जाते हैं (कोई exception नहीं उठता)। बंद है या नहीं, यह यहाँ नहीं जाँचा जाता (profile_sides और उसके बाद वाले जाँचते हैं)।

• return value: (N, 2) float64। leading edge (0, 0) पर, trailing edge (1, 0) के पास, x [0, 1] का chord अनुपात है। y का चिह्न (upper surface धनात्मक है या ऋणात्मक) input की घूमने की दिशा से तय होता है, और उलटा नहीं किया जाता।

• विफलता: ValueError (shape, points की कमी, non-finite, chord length 0 = सभी points एक ही जगह)।

leading/trailing edge का निर्णय "सबसे दूर के point-pair में से, थोड़ा अंदर जिसका section मोटा हो = leading edge" है, इसलिए आगे-पीछे समान मोटाई वाले symmetric section (ellipse आदि) में आगे-पीछे उलट सकते हैं। profile_sides / profile_thickness / profile_camber इसे अंदर से call करते हैं।

उपयोग की विस्तृत guide

• profile_metrology family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• profile_frame_tour — py -3.11 examples/profile_frame_tour.py

वे अगले ops जिनसे type जुड़ता है (pairs को input के रूप में लेते हैं)

profile_perturb · profile_chord_frame · profile_resample · profile_sides · profile_thickness · profile_camber · profile_leading_edge_radius · profile_trailing_edge_gap

इसी category के (frame)

profile_chord_frame · profile_resample


*Provenance: profileops.py — PROFILE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.