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

Reply via email to