1- # Per-library metadata for matplotlib implementation of stereonet-equal-area
2- # Auto-generated by impl-generate.yml
3-
41library : matplotlib
52specification_id : stereonet-equal-area
63created : ' 2026-03-15T23:01:12Z'
7- updated : ' 2026-03-15T23:01:12Z '
4+ updated : ' 2026-03-15T23:04:56Z '
85generated_by : claude-opus-4-5-20251101
96workflow_run : 23121188769
107issue : 4576
@@ -13,7 +10,209 @@ library_version: 3.10.8
1310preview_url : https://storage.googleapis.com/pyplots-images/plots/stereonet-equal-area/matplotlib/plot.png
1411preview_thumb : https://storage.googleapis.com/pyplots-images/plots/stereonet-equal-area/matplotlib/plot_thumb.png
1512preview_html : null
16- quality_score : null
13+ quality_score : 82
1714review :
18- strengths : []
19- weaknesses : []
15+ strengths :
16+ - Mathematically correct equal-area projection with proper spherical geometry
17+ - ' Full spec compliance: all required features including density contours'
18+ - Realistic geological data with appropriate strike/dip values
19+ - Clean well-structured code with no over-engineering
20+ - Distinct markers per feature type with white edge highlighting
21+ weaknesses :
22+ - Great circles too faint (alpha=0.15, linewidth=0.7) to be useful
23+ - Title fontsize 22pt below the 24pt guideline
24+ - Fault color has low contrast against gray density contours
25+ - No visual emphasis to guide viewer toward geological interpretation
26+ image_description : ' The plot shows a lower-hemisphere equal-area (Schmidt net) stereonet
27+ on a polar projection with North at top. Three geological feature types are displayed:
28+ Bedding poles (blue circles) clustered in the NE quadrant around 30-60° azimuth,
29+ Joint poles (orange squares) clustered near N around 20-40° azimuth, and Fault
30+ poles (dark gray/maroon triangles) clustered in the W-SW quadrant around 270-300°.
31+ Great circles are drawn as thin, semi-transparent arcs in corresponding colors
32+ across the stereonet. Gray density contours (Kamb-style) highlight the pole clusters.
33+ The perimeter has tick marks every 10° with cardinal directions (N, E, S, W) and
34+ degree labels every 30°. A legend is positioned in the upper right outside the
35+ plot circle. The title reads "stereonet-equal-area · matplotlib · pyplots.ai".
36+ The overall layout is square with the stereonet filling most of the canvas.'
37+ criteria_checklist :
38+ visual_quality :
39+ score : 24
40+ max : 30
41+ items :
42+ - id : VQ-01
43+ name : Text Legibility
44+ score : 6
45+ max : 8
46+ passed : true
47+ comment : Title 22pt (below 24pt guideline), tick/legend labels 16pt are good
48+ - id : VQ-02
49+ name : No Overlap
50+ score : 6
51+ max : 6
52+ passed : true
53+ comment : No text overlap issues
54+ - id : VQ-03
55+ name : Element Visibility
56+ score : 4
57+ max : 6
58+ passed : false
59+ comment : Great circles at alpha=0.15 too faint to distinguish
60+ - id : VQ-04
61+ name : Color Accessibility
62+ score : 3
63+ max : 4
64+ passed : false
65+ comment : Fault color blends with gray density contours
66+ - id : VQ-05
67+ name : Layout & Canvas
68+ score : 3
69+ max : 4
70+ passed : false
71+ comment : Good square layout, minor imbalance from external legend
72+ - id : VQ-06
73+ name : Axis Labels & Title
74+ score : 2
75+ max : 2
76+ passed : true
77+ comment : Cardinal directions and degree marks appropriate for stereonet
78+ design_excellence :
79+ score : 12
80+ max : 20
81+ items :
82+ - id : DE-01
83+ name : Aesthetic Sophistication
84+ score : 5
85+ max : 8
86+ passed : false
87+ comment : Thoughtful palette with distinct markers, above defaults but not
88+ publication-level
89+ - id : DE-02
90+ name : Visual Refinement
91+ score : 4
92+ max : 6
93+ passed : false
94+ comment : Radial ticks hidden, subtle grid, clean stereonet appearance
95+ - id : DE-03
96+ name : Data Storytelling
97+ score : 3
98+ max : 6
99+ passed : false
100+ comment : Three clusters visible with density contours but no emphasis on interpretation
101+ spec_compliance :
102+ score : 15
103+ max : 15
104+ items :
105+ - id : SC-01
106+ name : Plot Type
107+ score : 5
108+ max : 5
109+ passed : true
110+ comment : Correct equal-area Schmidt net projection
111+ - id : SC-02
112+ name : Required Features
113+ score : 4
114+ max : 4
115+ passed : true
116+ comment : ' All spec features present: great circles, poles, contours, legend,
117+ grid'
118+ - id : SC-03
119+ name : Data Mapping
120+ score : 3
121+ max : 3
122+ passed : true
123+ comment : Strike/dip correctly converted to equal-area coordinates
124+ - id : SC-04
125+ name : Title & Legend
126+ score : 3
127+ max : 3
128+ passed : true
129+ comment : Correct title format and descriptive legend labels
130+ data_quality :
131+ score : 14
132+ max : 15
133+ items :
134+ - id : DQ-01
135+ name : Feature Coverage
136+ score : 5
137+ max : 6
138+ passed : true
139+ comment : Three feature types with distinct orientations, good spread
140+ - id : DQ-02
141+ name : Realistic Context
142+ score : 5
143+ max : 5
144+ passed : true
145+ comment : Authentic structural geology field measurements
146+ - id : DQ-03
147+ name : Appropriate Scale
148+ score : 4
149+ max : 4
150+ passed : true
151+ comment : 75 measurements, realistic strike/dip ranges
152+ code_quality :
153+ score : 10
154+ max : 10
155+ items :
156+ - id : CQ-01
157+ name : KISS Structure
158+ score : 3
159+ max : 3
160+ passed : true
161+ comment : Clean linear flow
162+ - id : CQ-02
163+ name : Reproducibility
164+ score : 2
165+ max : 2
166+ passed : true
167+ comment : np.random.seed(42)
168+ - id : CQ-03
169+ name : Clean Imports
170+ score : 2
171+ max : 2
172+ passed : true
173+ comment : Only matplotlib and numpy, both used
174+ - id : CQ-04
175+ name : Code Elegance
176+ score : 2
177+ max : 2
178+ passed : true
179+ comment : Appropriate complexity for domain-specific visualization
180+ - id : CQ-05
181+ name : Output & API
182+ score : 1
183+ max : 1
184+ passed : true
185+ comment : Saves plot.png with dpi=300, current API
186+ library_mastery :
187+ score : 7
188+ max : 10
189+ items :
190+ - id : LM-01
191+ name : Idiomatic Usage
192+ score : 4
193+ max : 5
194+ passed : true
195+ comment : Good polar projection use, ax-level methods
196+ - id : LM-02
197+ name : Distinctive Features
198+ score : 3
199+ max : 5
200+ passed : false
201+ comment : Polar projection with custom equal-area transforms is distinctive
202+ matplotlib capability
203+ verdict : REJECTED
204+ impl_tags :
205+ dependencies : []
206+ techniques :
207+ - polar-projection
208+ - manual-ticks
209+ - layer-composition
210+ patterns :
211+ - data-generation
212+ - iteration-over-groups
213+ dataprep :
214+ - kde
215+ styling :
216+ - alpha-blending
217+ - edge-highlighting
218+ - grid-styling
0 commit comments