pro mvn_kp_insitu_cdf_read, insitu, infiles, instruments=instruments
debug = getenv('MVNTOOLKIT_DEBUG')
if not keyword_set(debug) then begin
on_error, 1
endif
lpw_start = 2
swea_start = 23
swia_start = 41
static_start = 53
sep_start = 100
mag_start = 128
ngims_start = 142
spacecraft_part1_start = 172
app_start = 189
orbit_number_index = 195
io_bound_index = 196
spacecraft_part2_start = 197
lpw_total = 21
static_total = 47
swia_total = 12
swea_total = 18
mag_total = 14
sep_total = 28
ngims_total = 30
spacecraft_part1_total = 17
spacecraft_total = 32
app_total = 6
insitu = 'hack'
foreach file , infiles do begin
cdfi_insitu=0
kp_data=0
cdfi_insitu = cdf_load_vars(file, /ALL)
NV=(size(*cdfi_insitu.vars[1].dataptr))[1]
MVN_KP_INSITU_STRUCT_INIT, insitu_record, instruments=instruments
kp_data = replicate(insitu_record,NV)
kp_data.time = time_double(*cdfi_insitu.vars[1].dataptr, tformat='YYYY-MM-DDThh:mm:ss')
kp_data.time_string = *cdfi_insitu.vars[1].dataptr
kp_data.orbit = *cdfi_insitu.vars[orbit_number_index].dataptr
kp_data.io_bound = *cdfi_insitu.vars[io_bound_index].dataptr
if instruments.lpw eq 1 then begin
j = lpw_start
for i=0, lpw_total-1 do begin
kp_data.lpw.(i) = *cdfi_insitu.vars[j].dataptr
j++
endfor
endif
if instruments.static eq 1 then begin
j = static_start
for i=0, static_total-1 do begin
kp_data.static.(i) = *cdfi_insitu.vars[j].dataptr
j++
endfor
endif
if instruments.swia eq 1 then begin
j = swia_start
for i=0, swia_total-1 do begin
kp_data.swia.(i) = *cdfi_insitu.vars[j].dataptr
j++
endfor
endif
if instruments.swea eq 1 then begin
j = swea_start
for i=0, swea_total-1 do begin
kp_data.swea.(i) = *cdfi_insitu.vars[j].dataptr
j++
endfor
endif
if instruments.mag eq 1 then begin
j = mag_start
for i=0, mag_total-1 do begin
kp_data.mag.(i) = *cdfi_insitu.vars[j].dataptr
j++
endfor
endif
if instruments.sep eq 1 then begin
j = sep_start
for i = 0, sep_total-1 do begin
kp_data.sep.(i) = *cdfi_insitu.vars[j].dataptr
j++
endfor
endif
if instruments.ngims eq 1 then begin
j = ngims_start
for i=0, ngims_total-1 do begin
kp_data.ngims.(i) = *cdfi_insitu.vars[j].dataptr
j++
endfor
endif
j = spacecraft_part1_start
for i=0, spacecraft_part1_total-1 do begin
kp_data.spacecraft.(i) = *cdfi_insitu.vars[j].dataptr
j++
endfor
j = spacecraft_part2_start
for i=i, spacecraft_total-1 do begin
kp_data.spacecraft.(i) = *cdfi_insitu.vars[j].dataptr
j++
endfor
j = app_start
for i=0, app_total-1 do begin
kp_data.app.(i) = *cdfi_insitu.vars[j].dataptr
j++
endfor
if size(insitu, /TYPE) eq 7 then begin
insitu = kp_data
endif else begin
insitu = [insitu, kp_data]
endelse
endforeach
end