Changeset: 34945a423783 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=34945a423783 Modified Files: sql/backends/monet5/vaults/lidar/lidar.c Branch: data-vaults Log Message:
[LiDAR]: Load the rest of the columns diffs (174 lines): diff --git a/sql/backends/monet5/vaults/lidar/lidar.c b/sql/backends/monet5/vaults/lidar/lidar.c --- a/sql/backends/monet5/vaults/lidar/lidar.c +++ b/sql/backends/monet5/vaults/lidar/lidar.c @@ -1304,6 +1304,7 @@ typedef union retval { static RetVal readValue(LASPointH p, ParameterValues param) { RetVal ret; + LASColorH color; switch(param) { case PARAM_X_COORD: @@ -1315,8 +1316,50 @@ static RetVal readValue(LASPointH p, Par case PARAM_Z_COORD: ret.val_dbl = LASPoint_GetZ(p); break; + case PARAM_GPS_TIME: + ret.val_dbl = LASPoint_GetTime(p); + break; + case PARAM_SCAN_ANGLE: + ret.val_bte = LASPoint_GetScanAngleRank(p); + break; + case PARAM_INTENSITY: + ret.val_sht = LASPoint_GetIntensity(p); + break; + case PARAM_N_RETURNS: + ret.val_sht = LASPoint_GetNumberOfReturns(p); + break; + case PARAM_N_THIS_RETURN: + ret.val_sht = LASPoint_GetReturnNumber(p); + break; + case PARAM_CLASSIFICATION_NUMBER: + ret.val_bte = LASPoint_GetClassification(p); + break; + case PARAM_USER_DATA: + ret.val_bte = LASPoint_GetUserData(p); + break; + case PARAM_POINT_SOURCE_ID: + ret.val_sht = LASPoint_GetPointSourceId(p); + break; + case PARAM_EDGE_OF_FLIGHT_LINE: + ret.val_sht = LASPoint_GetFlightLineEdge(p); + break; + case PARAM_DIRECTION_OF_SCAN_FLAG: + ret.val_sht = LASPoint_GetScanDirection(p); + break; + case PARAM_RED_CHANNEL: + color = LASPoint_GetColor(p); + ret.val_sht = LASColor_GetRed(color); + break; + case PARAM_GREEN_CHANNEL: + color = LASPoint_GetColor(p); + ret.val_sht = LASColor_GetRed(color); + break; + case PARAM_BLUE_CHANNEL: + color = LASPoint_GetColor(p); + ret.val_sht = LASColor_GetRed(color); + break; default: - fprintf(stderr, "Unimplemented\n"); + fprintf(stderr, "readValue: Unimplemented\n"); } return ret; @@ -1363,8 +1406,34 @@ read_array_##BAT_TYPE(str fname, value = readValue(p, val); \ d[i] = value.val_dbl/scale; \ break; \ + case PARAM_GPS_TIME: \ + value = readValue(p, val); \ + d[i] = value.val_dbl; \ + break; \ + case PARAM_SCAN_ANGLE: \ + case PARAM_CLASSIFICATION_NUMBER: \ + case PARAM_USER_DATA: \ + value = readValue(p, val); \ + d[i] = value.val_bte; \ + break; \ + case PARAM_INTENSITY: \ + case PARAM_N_RETURNS: \ + case PARAM_N_THIS_RETURN: \ + case PARAM_POINT_SOURCE_ID: \ + case PARAM_EDGE_OF_FLIGHT_LINE: \ + case PARAM_DIRECTION_OF_SCAN_FLAG: \ + case PARAM_RED_CHANNEL: \ + case PARAM_GREEN_CHANNEL: \ + case PARAM_BLUE_CHANNEL: \ + value = readValue(p, val); \ + d[i] = value.val_sht; \ + break; \ + case PARAM_VERTEX_INDEX: \ + d[i] = i; \ + break; \ default: \ - fprintf(stderr, "Unimplemented\n"); \ + fprintf(stderr, \ + "read_array_##BAT_TYPE: Unimplemented\n"); \ } \ p = LASReader_GetNextPoint(reader); \ i++; \ @@ -1392,6 +1461,8 @@ READ_ARRAY(lng) READ_ARRAY(hge) #endif +READ_ARRAY(dbl) + static str LIDARloadTable_(mvc *m, sql_schema *sch, sql_table *lidar_tbl, str tname, sql_table *tbl) { @@ -1534,6 +1605,65 @@ LIDARloadTable_(mvc *m, sql_schema *sch, } column = mvc_bind_column(m, tbl, "z"); break; + case PARAM_GPS_TIME: + bat = read_array_dbl(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "gpstime"); + break; + case PARAM_SCAN_ANGLE: + bat = read_array_bte(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "scan_angle"); + break; + case PARAM_INTENSITY: + bat = read_array_sht(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "intensity"); + break; + case PARAM_N_RETURNS: + bat = read_array_sht(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "n_returns"); + break; + case PARAM_N_THIS_RETURN: + bat = read_array_sht(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "n_this_return"); + break; + case PARAM_CLASSIFICATION_NUMBER: + bat = read_array_bte(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "classification_number"); + break; + case PARAM_USER_DATA: + bat = read_array_bte(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "user_data"); + break; + case PARAM_POINT_SOURCE_ID: + bat = read_array_sht(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "point_source_id"); + break; + case PARAM_EDGE_OF_FLIGHT_LINE: + bat = read_array_sht(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "edge_of_flight_line"); + break; + case PARAM_DIRECTION_OF_SCAN_FLAG: + bat = read_array_sht(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "direction_of_scan_flag"); + break; + case PARAM_RED_CHANNEL: + bat = read_array_sht(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "red_channel"); + break; + case PARAM_GREEN_CHANNEL: + bat = read_array_sht(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "green_channel"); + break; + case PARAM_BLUE_CHANNEL: + bat = read_array_sht(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "blue_channel"); + break; + case PARAM_VERTEX_INDEX: + bat = read_array_int(fname, prm, rows, 0, &error_code); + column = mvc_bind_column(m, tbl, "vertex_index"); + break; + default: + fprintf(stderr, "LIDARloadTable_: unimplemented 0x%x\n", prm); + abort(); } if ( bat == NULL ) { GDKfree(tpcode); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list