Changeset 30 for trunk/TOOLS/render_particle_data.pro
- Timestamp:
- 07/30/10 13:16:33 (22 months ago)
- File:
-
- 1 edited
-
trunk/TOOLS/render_particle_data.pro (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/TOOLS/render_particle_data.pro
r17 r30 77 77 @common_blocks.inc 78 78 if N_elements(tcenter) le 1 then tcenter = center 79 Nderived = 7 79 Nderived = 20 80 id = 0L 80 81 dfields = PTRARR(Nderived) 81 dfields[0] = PTR_NEW(["abs(part. velocity)", "particle_velocity_x", "particle_velocity_y","particle_velocity_z"]) 82 dfields[1] = PTR_NEW(["particle radius", "particle_position_x", "particle_position_y", "particle_position_z"]) 83 dfields[2] = PTR_NEW(["particle age", "creation_time"]) 84 dfields[3] = PTR_NEW(["enclosed mass in particles","particle_position_x", "particle_position_y", "particle_position_z", "particle massdensity"]) 85 dfields[4] = PTR_NEW(["particle voronoi density","particle_position_x", "particle_position_y", "particle_position_z", "particle massdensity"]) 86 dfields[5] = PTR_NEW(["particle voronoi radius","particle_position_x", "particle_position_y", "particle_position_z"]) 87 dfields[6] = PTR_NEW(["particle voronoi volume","particle_position_x", "particle_position_y", "particle_position_z"]) 82 dfields[id++] = PTR_NEW(["abs(part. velocity)", "particle_velocity_x", "particle_velocity_y","particle_velocity_z"]) 83 dfields[id++] = PTR_NEW(["particle radial velocity","particle_position_x", "particle_position_y", "particle_position_z", "particle_velocity_x", "particle_velocity_y","particle_velocity_z"]) 84 dfields[id++] = PTR_NEW(["particle tangential velocity", "particle_position_x", "particle_position_y", "particle_position_z", "particle_velocity_x", "particle_velocity_y","particle_velocity_z"]) 85 dfields[id++] = PTR_NEW(["particle radius", "particle_position_x", "particle_position_y", "particle_position_z"]) 86 dfields[id++] = PTR_NEW(["particle cyl. radius", "particle_position_x", "particle_position_y", "particle_position_z"]) 87 dfields[id++] = PTR_NEW(["particle age", "creation_time"]) 88 dfields[id++] = PTR_NEW(["enclosed mass in particles","particle_position_x", "particle_position_y", "particle_position_z", "particle massdensity"]) 89 dfields[id++] = PTR_NEW(["particle voronoi density","particle_position_x", "particle_position_y", "particle_position_z", "particle massdensity"]) 90 dfields[id++] = PTR_NEW(["particle voronoi radius","particle_position_x", "particle_position_y", "particle_position_z"]) 91 dfields[id++] = PTR_NEW(["particle voronoi volume","particle_position_x", "particle_position_y", "particle_position_z"]) 88 92 ; the voronoi calculations are done in read_particle after all 89 93 ; particles have been read. 94 dfields = dfields[0:id-1] 90 95 91 96 if N_elements(stride) eq 1 then stride = LONARR(N_elements(usegi))+stride … … 94 99 Nvar = N_ELEMENTS(VariableNames) 95 100 data_format = determine_data_format_from_file_name(usegi[0].baryon_file) 96 if data_format lt 0 then return, 0101 if data_format lt 0 then return, 0 97 102 ; determine all data fields to read and read data 98 103 field_names = identify_unique_field_names(VariableNames, dfields) … … 106 111 pack_particles, a 107 112 113 ax = double(slice_ori eq 0.) 108 114 print, field_names 109 115 for i=0, Nvar-1 do begin ; if derived field was requested compute it here … … 115 121 -1: junk = '' 116 122 0: a[j].data[i] = ptr_new(sqrt(fn(a[j], "particle_velocity_x")^2+ $ 117 fn(a[j], "particle_velocity_y")^2+ $ 118 fn(a[j], "particle_velocity_z")^2)) 119 1: a[j].data[i] = ptr_new(sqrt((tcenter[0]-fn(a[j], "particle_position_x"))^2 + $ 120 (tcenter[1]-fn(a[j], "particle_position_y"))^2 + $ 121 (tcenter[2]-fn(a[j], "particle_position_z"))^2)) 122 2: a[j].data[i] = ptr_new(times[time_index] - fn(a[j], "creation_time")) 123 3: a[j].data[i] = $ ; allocate array 123 fn(a[j], "particle_velocity_y")^2+ $ 124 fn(a[j], "particle_velocity_z")^2)) 125 1: a[j].data[i] = ptr_new(radial_velocity(tcenter, $ 126 fn(a[j], "particle_position_x"),fn(a[j], "particle_position_y"),fn(a[j], "particle_position_z"), $ 127 fn(a[j], "particle_velocity_x"),fn(a[j], "particle_velocity_y"),fn(a[j], "particle_velocity_z"),/cons_vel)) 128 129 2: a[j].data[i] = ptr_new(tangential_velocity(tcenter, $ 130 fn(a[j], "particle_position_x"),fn(a[j], "particle_position_y"),fn(a[j], "particle_position_z"), $ 131 fn(a[j], "particle_velocity_x"),fn(a[j], "particle_velocity_y"),fn(a[j], "particle_velocity_z"))) 132 133 3: a[j].data[i] = ptr_new(sqrt((tcenter[0]-fn(a[j], "particle_position_x"))^2 + $ 134 (tcenter[1]-fn(a[j], "particle_position_y"))^2 + $ 135 (tcenter[2]-fn(a[j], "particle_position_z"))^2)) 136 137 4: a[j].data[i] = ptr_new(sqrt(ax[0]*(tcenter[0]-fn(a[j], "particle_position_x"))^2 + $ 138 ax[1]*(tcenter[1]-fn(a[j], "particle_position_y"))^2 + $ 139 ax[2]*(tcenter[2]-fn(a[j], "particle_position_z"))^2)) 140 141 5: a[j].data[i] = ptr_new(times[time_index] - fn(a[j], "creation_time")) 142 6: a[j].data[i] = $ ; allocate array 124 143 ptr_new(fn(a[j], "particle massdensity")) ; 125 4: a[j].data[i] = $144 7: a[j].data[i] = $ 126 145 ptr_new(fn(a[j], "particle_position_x")) ; voronoi calculations done in read_particle_data 127 5: a[j].data[i] = $146 8: a[j].data[i] = $ 128 147 ptr_new(fn(a[j], "particle_position_x")) ; voronoi calculations done in read_particle_data 129 6: a[j].data[i] = $148 9: a[j].data[i] = $ 130 149 ptr_new(fn(a[j], "particle_position_x")) ; voronoi calculations done in read_particle_data 131 150 endcase 132 print, max(*a[j].data[i])133 a[j].data_fields[i] = (*dfields[match])[0]151 ; print, max(*a[j].data[i]) 152 ; a[j].data_fields[i] = (*dfields[match])[0] 134 153 endif 135 154 endfor ; loop over grids … … 280 299 if npoints lt 10 then print, devicePart1, devicePart2 281 300 282 pointimage = hist2d(devicePart1, devicePart2, $283 min1=1.,min2=1.,max1=xy_sl_size,max2=xy_sl_size, $284 binsize1=parti.size,binsize2=parti.size, density=rho)301 ;pointimage = hist2d(devicePart1, devicePart2, $ 302 ; min1=1.,min2=1.,max1=xy_sl_size,max2=xy_sl_size, $ 303 ; binsize1=parti.size,binsize2=parti.size, density=rho) 285 304 ;pointimage = rho 286 305 … … 288 307 min1=1.,min2=1.,max1=xy_sl_size,max2=xy_sl_size, density=rho) ;/pointimage 289 308 290 ind = where(rho ge 0, count) 309 print, size(himage) 310 ind = where(rho gt 0, count) 291 311 if not shouldbe_histogram(names[parti.index]) then begin 292 312 if count gt 0 then himage[ind] /= float(rho[ind]) … … 294 314 endif 295 315 296 if parti.index le 2 then himage = pointimage297 ;breaki298 ;if parti.size ge 2 then pimage = congrid(pimage, xy_sl_size,299 ;xy_sl_size, /center, cubic=(interpolate_i < 1), /minus_one)300 301 ;print, 'minimum values in hist2d used:', om1, om2302 ;breaki303 304 316 secmin = min(himage) 305 317 ind = where(himage gt secmin, count) 306 307 print, secmin 308 309 if ind[0] ge 0 then secmin = min(himage[ind]) 310 print, secmin 311 312 313 if shouldbe_logged(names[parti.index]) then begin 314 oind = where(himage le 0. ) 315 himage = himage > 0.5*secmin 316 himage = alog10(himage ) 317 endif 318 319 320 print, min(himage) 321 322 s = (size(himage))[1:2] 323 dix = s[0] 324 diy = s[1] 318 ;print, secmin 319 320 321 if shouldbe_logged(names[parti.index]) or parti.index le 2 then begin 322 ; himage = himage > 0.5*secmin 323 himage = alog10(himage > secmin) 324 endif 325 326 s = size(himage) 327 dix = s[1] 328 diy = s[2] 325 329 locs = lindgen(dix*diy) 326 330 nind = ARRAY_INDICES([dix,diy], locs, /DIMENSIONS) … … 332 336 z_stuetz = himage[*] 333 337 n_stuetz = N_elements(z_stuetz) 334 335 if parti.size lt 4 then $ 336 pimage = (rebin(himage, dix*parti.size,diy*parti.size, sample=1-(interpolate_i < 1)))[0:xy_sl_size-1, 0:xy_sl_size-1] $ 337 else pimage = render_image() 338 if N_elements(z_stuetz) ne dix*diy then breaki 339 ; if parti.size lt 4 then $ 340 ; pimage = (rebin(himage, dix*parti.size,diy*parti.size, sample=1-(interpolate_i < 1)))[0:xy_sl_size-1, 0:xy_sl_size-1] $ 341 ; else 342 pimage = render_image() 338 343 339 344 return, pimage
Note: See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)