def get1Dcut(cam: List[Cam], odir: Path=None, verbose: bool=False) -> List[Cam]:
<EOL><INDENT>srpts = logspace(<NUM_LIT>, <NUM_LIT>, <NUM_LIT>)<EOL>for C in cam:<EOL><INDENT>if C.usecam:<EOL><INDENT>C.doorient()<EOL>C.toecef(srpts)<EOL><DEDENT><DEDENT>if verbose:<EOL><INDENT>plotLOSecef(cam, odir)<EOL><DEDENT>cam[<NUM_LIT:0>].az2pts, cam[<NUM_LIT:0>].el2pts, cam[<NUM_LIT:0>].r2pts = ecef2aer(cam[<NUM_LIT:1>].x2mz, cam[<NUM_LIT:1>].y2mz, cam[<NUM_LIT:1>].z2mz,<EOL>cam[<NUM_LIT:0>].lat, cam[<NUM_LIT:0>].lon, cam[<NUM_LIT:0>].alt_m)<EOL>cam[<NUM_LIT:1>].az2pts, cam[<NUM_LIT:1>].el2pts, cam[<NUM_LIT:1>].r2pts = ecef2aer(cam[<NUM_LIT:0>].x2mz, cam[<NUM_LIT:0>].y2mz, cam[<NUM_LIT:0>].z2mz,<EOL>cam[<NUM_LIT:1>].lat, cam[<NUM_LIT:1>].lon, cam[<NUM_LIT:1>].alt_m)<EOL>for C in cam:<EOL><INDENT>if C.usecam:<EOL><INDENT>C.findClosestAzel(odir)<EOL><DEDENT><DEDENT>if verbose and odir:<EOL><INDENT>dbgfn = odir / '<STR_LIT>'<EOL>print('<STR_LIT>', dbgfn)<EOL>with h5py.File(dbgfn, '<STR_LIT:w>') as f:<EOL><INDENT>for C in cam:<EOL><INDENT>f[f'<STR_LIT>'] = C.cutrow<EOL>f[f'<STR_LIT>'] = C.cutcol<EOL>f['<STR_LIT>'] = C.xpix<EOL><DEDENT><DEDENT><DEDENT>return cam<EOL><DEDENT>
i.   get az/el of each pixel (rotated/transposed as appropriate)
ii.  get cartesian ECEF of each pixel end, a point outside the grid (to create rays to check intersections with grid)
iii. put cameras in same frame, getting az/el to each other's pixel ends
iv.  find the indices corresponding to those angles
now the cameras are geographically registered to pixel indices