"""Own synthetic measurements; inference receives only the saved noisy coordinates/errors.""" import signal signal.alarm(120) import argparse import numpy as np from pathlib import Path from io_helpers import read_json,write_json def main(): parser=argparse.ArgumentParser();parser.add_argument('--record',type=Path,required=True);parser.add_argument('--output',type=Path,default=Path('results/own-observations.json'));args=parser.parse_args();record=read_json(args.record);cohorts=np.array(record['cohorts']);rng=np.random.default_rng(410124);weights=cohorts[:,2]/cohorts[:,2].sum();indices=rng.choice(len(cohorts),96,p=weights);errors=np.array([.10,.12]);rho=-.7;covariance=np.array([[errors[0]**2,rho*errors.prod()],[rho*errors.prod(),errors[1]**2]]);noise=rng.multivariate_normal([0,0],covariance,size=96);observed=cohorts[indices,5:7]+noise rows=[{'id':'SYN'+str(i+1).zfill(4),'feh':float(row[0]),'mgfe':float(row[1]),'fehError':.10,'mgfeError':.12}for i,row in enumerate(observed)] write_json(args.output,{'kind':'own-synthetic-observations','rows':rows,'generation':'Seed410124;96draws from positivebirthmass mixture;knownGaussian measurementnoise;nointrinsicscatter','truthParametersIncludedForInference':False});print('PASS:96 synthetic measurements saved; no truthparameter field') if __name__=='__main__':main()