prepare-factory-dem-audit.mjs 1.2 KB

12345678910
  1. import assert from 'node:assert/strict'
  2. import {readFileSync,writeFileSync} from 'node:fs'
  3. const prefix='.scratch/cockpit-shell-panel-layout/verify/artifacts/t35/large-building-audit/'
  4. const audit=JSON.parse(readFileSync(prefix+'audit.json')),ids=['cad-4057','cad-4060','cad-4058','cad-4755'],samples=[],buildings=[]
  5. for(const id of ids){const b=audit.candidates.find(b=>b.id===id),r=b.geometry.coordinates[0];assert.equal(r.length,5,'factory must remain a surveyed quadrilateral');assert.deepEqual(r[0],r[4]);const indices=[]
  6. for(let i=0;i<=20;i++)for(let j=0;j<=8;j++){const u=i/20,v=j/8;const p=r[0].map((_,k)=>(1-u)*(1-v)*r[0][k]+u*(1-v)*r[1][k]+u*v*r[2][k]+(1-u)*v*r[3][k]);indices.push(samples.length);samples.push({id,lon:p[0],lat:p[1],u,v,edge:i===0||i===20||j===0||j===8})}
  7. buildings.push({id,originalRelief:b.terrainRelief,sampleIndices:indices,geometry:b.geometry,imagerySupportedContinuousRoof:true,acceptedForRuntime:false})
  8. }
  9. writeFileSync(prefix+'factory-dem-plan.json',JSON.stringify({source:'surveyed JMD quadrilaterals; dense bilinear sampling, no modified footprint',buildings,samples},null,2))
  10. console.log(JSON.stringify({buildings:ids.length,points:samples.length,modelChanged:false}))