// els-tiedostojen pistekohtaine tietuerakenne struct ELASpoint { double x; double y; double z; unsigned short intensity; unsigned char return_number : 3; unsigned char number_of_returns_of_given_pulse : 3; unsigned char scan_direction_flag : 1; unsigned char edge_of_flight_line : 1; unsigned char classification; char scan_angle_rank; unsigned char user_data; unsigned short point_source_ID; double gps_time; double x_lidar; double y_lidar; double z_lidar; double roll; double pitch; double heading; unsigned short agc; int dummy; short dummy2; } LiDR2007; // hehtaari BIN-tiedostojen pulssikoht. tietuerakenne struct Point3d { double x; double y; double z; }; struct LidarRecord { double GPSTime; char PulseCount; struct Point3d LastPulse; // 0 last, 1 third, 2 = second, 3 = first struct Point3d SecondPulse; // 0 last, 1 third, 2 = second, 3 = first struct Point3d ThirdPulse; // 0 last, 1 third, 2 = second, 3 = first struct Point3d FirstPulse; // 0 last, 1 third, 2 = second, 3 = first short Intensity[4]; double Range[4]; double Angle; double Roll; double Pitch; double Heading; struct Point3d Poslidar; short StripNum; char SyncBit; unsigned char Res1; unsigned char Res2; unsigned char Res3; } LiDR; LiDR.Res1 = unsigned char(LiDR2007A[l].agc); LiDR.Res2 = LiDR2007A[l].edge_of_flight_line; LiDR.Res3 = LiDR2007A[l].classification; LiDR.SyncBit = LiDR2007A[l].scan_direction_flag; Rem Coordinates of the 1-ha BIN file for point Xs, Ys FN1 = Format$(Int((Xs - 2510000) / 100), "000") FN2 = Format$(Int((Ys - 6850000) / 100), "000")