QUAKEMLER: 20 SYNTHETIC TEST EVENTS

These are fictional software-test records, NOT an earthquake catalogue.
No original event rows, identifiers, dates or positions were copied.
Do not use these records for research, hazard assessment or emergency decisions.

FILES
1. SYNTHETIC-KyleBradley-format-20.csv
   Exactly the 48 column names, order and comma-separated layout of
   lister_gcmt.csv in the locally supplied KyleBradleyData folder.
   Kyle Bradley's supplied file is credited as the column-layout source only.
   This is not a redistribution of his observations or the GCMT catalogue.
   Requires support for this particular extended CSV layout in QuakeMLer.

2. SYNTHETIC-QuakeMLer-import-20.csv
   The same 20 origin times, coordinates, depths and magnitudes in the
   simplified import layout: time,latitude,longitude,depth_m,magnitude,
   magnitude_type,id. This companion intentionally omits the tensor and
   other extended columns. It matches the generic CSV importer contract.

3. SYNTHETIC-QuakeMLer-20.QuakeML
   The same 20 fictional origins and Mw magnitudes as QuakeML 1.2 BED.
   Depth is in metres, time is UTC, coordinates are decimal degrees.
   Explicit preferred-origin and preferred-magnitude links are included.
   It is NOT a lossless conversion of the extended CSV: centroid and tensor
   fields are not exported in this minimal demonstration companion.

GENERATION AND UNITS
Generated independently using deterministic random seed 20261114.
Fictional dates are in 2040. Latitudes -35 to -20, longitudes -140 to -115,
depths 8 to 220 km, magnitudes Mw 4.0 to 6.4.
All IDs start SYNTHETIC-QUAKEMLER, author is SYNTHETIC, event_type synthetic.
The depth and centroid_depth CSV fields use kilometres. depth_m uses metres.
Centroids equal origins by construction. Mechanisms are deliberately the same
ideal normal-fault double couple, not randomly inferred geological solutions:
strike/dip/rake 0/45/-90 and 180/45/-90. Normalized ENU tensor is diag(1,0,-1).
M0 is dyn cm, calculated as 10^(1.5*Mw+16.1). Spherical tensor coefficients
and eigenvalues are scaled by 10^exponent. These are fixture conventions,
not a claim that all source columns or catalogue conventions are documented.
distance_m, offset_m and azimuth_deg are zero placeholders: no real profile
or reference-point calculation has been performed. Do not interpret them.

CHECKS
20 records in each file. Exact-template header and column count checked.
Origin values agree between the CSV and XML files. Original source unchanged.
QuakeML validated with xmllint against QuakeML-1.2.xsd and its BED 1.2 schema.
Schemas: https://quake.ethz.ch/quakeml/Documents
App/UI import and export testing remains for the user: schema validation is
not an application test and does not establish scientific validity.

SUGGESTED TEST
Import one file at a time and confirm 20 records with clearly synthetic IDs.
Start with the simplified CSV or QuakeML companion if the extended CSV
importer is unavailable in your build. Importing companions into the same
session intentionally introduces the same 20 event locations and times:
use this to exercise duplicate-candidate review, not as 60 unique events.
