<div dir="ltr"><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.727272033691406px">OK great. It is very low resolution but it worked. Thanks for all your help. My higher resolution run 1024^3 in 100 Mpc seems to crash on 128GB memory machine. I might have to look elsewhere.</span><div style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.727272033691406px">
<br></div><div style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.727272033691406px">Also, I normally use Canopy distribution but I just use an alias to loadyt which erases my PYTHONPATH and I can't access scipy and a few other libraries any more. What is the best practice here? Should I just manually export PYTHONPATH and point to the libraries need in canopy or can they play nice together?</div>
<div style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.727272033691406px"><br></div><div style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.727272033691406px">Thanks.<br><div><br></div><div>
BG</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jun 6, 2014 at 2:54 PM, Nathan Goldbaum <span dir="ltr"><<a href="mailto:nathan12343@gmail.com" target="_blank">nathan12343@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div class="">On Fri, Jun 6, 2014 at 11:48 AM, Brendan Griffen <span dir="ltr"><<a href="mailto:brendan.f.griffen@gmail.com" target="_blank">brendan.f.griffen@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">OK great. <span style="font-family:arial,sans-serif;font-size:12.727272033691406px">Thanks. I just wanted a homogeneous mesh. 512^3 with no nesting of any kind. Though when I plot the image it looks like it is assigning particles incorrectly (low resolution on the outside). This is just a test image.</span><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">



<br></div></div></blockquote><div><br></div></div><div>The SlicePlot is visualizing the octree so there is less resolution where there are fewer particles. If you want to visualize the covering grid you're going to need to visualize that separately.</div>
<div class="">

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-family:arial,sans-serif;font-size:12.727272033691406px"></div><div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">


ds = yt.load_particles(data, length_unit=3.08e24, mass_unit=1.9891e33,bbox=bbox)</div><div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">
<br></div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">ad = ds.all_data()</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">print ad['deposit', 'all_cic']</div>



</div><div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">slc = yt.SlicePlot(ds, 2, ('deposit', 'all_cic'))</div></div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">


slc.set_figure_size(4)</div>
<div style="font-family:arial,sans-serif;font-size:12.727272033691406px">cg = ds.covering_grid(level=9, left_edge=[0,0,0],dims=[512,512,512])</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">


<br></div></div></div></blockquote><div><br></div></div><div>To actually produce the uniform resolution ndarray, you're going to need to do something like:</div><div><br></div><div>array = cg[('deposit', 'all_cic')]</div>


<div><br></div><div>array will then be a 3D array you can do whatever you want with. By default it has units, but to strip them off you'll just need to cast to ndarray:</div><div><br></div><div>array_without_units = array.v</div>
<div class="">

<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">



</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">Also, is there a way to load multiple particle types?</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><br></div>



<div style="font-family:arial,sans-serif;font-size:12.727272033691406px">Do I just need to stack the particles into the array here?</div><div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">

<br></div><div>
<div><font face="arial, sans-serif">data = {'particle_position_x': pos[:,0],</font></div><div><font face="arial, sans-serif">        'particle_position_y': pos[:,1],</font></div><div><font face="arial, sans-serif">        'particle_position_z': pos[:,2],</font></div>



<div><font face="arial, sans-serif">        'particle_mass': np.array([mpart]*npart)}</font></div></div></div></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Then feed it in as usual?</font></div>


</div></blockquote><div><br></div></div><div>That's right, although if the particle masses are different for the different particle types that code snippet will need to be generalized to handle that.</div><div><br></div>
<div>

I think in principle it should be possible to make load_particles handle different particle types just like an SPH dataset that contains multiple particle types, but right now that hasn't been implemented yet.</div><div>
<div class="h5"><div>

 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">
<div><font face="arial, sans-serif"><br></font></div><div><img src="cid:ii_146728281f050575" alt="Inline image 1" width="503" height="405.64516129032256"></div><span><font color="#888888"><div><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">Brendan</span> </div>



</font></span></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 5, 2014 at 9:44 PM, Nathan Goldbaum <span dir="ltr"><<a href="mailto:nathan12343@gmail.com" target="_blank">nathan12343@gmail.com</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">That's right, you can set that via the bbox keyword parameter for load_particles.  I'd urge you to take a look at the docstrings and source code for load_particles.</div>



<div><div><div class="gmail_extra"><br>

<br><div class="gmail_quote">On Thu, Jun 5, 2014 at 6:34 PM, Brendan Griffen <span dir="ltr"><<a href="mailto:brendan.f.griffen@gmail.com" target="_blank">brendan.f.griffen@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div dir="ltr">Thanks very much Nathan. I tried to load in my own data but I think there are too many particles or I have to specifically set the domain size.<div><br></div><div>In this area:</div><div><div><br></div><div>






</div><div>data = {'particle_position_x': pos[:,0],</div><div>        'particle_position_y': pos[:,1],</div><div>        'particle_position_z': pos[:,2],</div><div>        'particle_mass': np.array([mpart]*npart)}</div>






<div><br></div><div>ds = yt.load_particles(data, length_unit=3.08e24, mass_unit=1.9891e36)</div></div><div><div>ad = ds.all_data()</div><div>print ad['deposit', 'all_cic']</div></div><div><br></div><div><div>






In [3]: run ytcic.py</div><div>yt : [INFO     ] 2014-06-05 21:29:06,183 Parameters: current_time              = 0.0</div><div>yt : [INFO     ] 2014-06-05 21:29:06,183 Parameters: domain_dimensions         = [2 2 2]</div>





<div>
yt : [INFO     ] 2014-06-05 21:29:06,184 Parameters: domain_left_edge          = [ 0.  0.  0.]</div><div>yt : [INFO     ] 2014-06-05 21:29:06,185 Parameters: domain_right_edge         = [ 1.  1.  1.]</div><div>yt : [INFO     ] 2014-06-05 21:29:06,185 Parameters: cosmological_simulation   = 0.0</div>






<div>yt : [INFO     ] 2014-06-05 21:29:06,188 Allocating for 1.342e+08 particles</div><div>---------------------------------------------------------------------------</div><div>YTDomainOverflow                          Traceback (most recent call last)</div>






<div>/nfs/blank/h4231/bgriffen/data/lib/yt-x86_64/lib/python2.7/site-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)</div><div>    202             else:</div><div>    203                 filename = fname</div>






<div>--> 204             __builtin__.execfile(filename, *where)</div><div><br></div><div>/nfs/blank/h4231/bgriffen/work/projects/caterpillar/c2ray/cic/ytcic.py in <module>()</div><div>     52 </div><div>     53 ad = ds.all_data()</div>






<div>---> 54 print ad['deposit', 'all_cic']</div><div>     55 slc = yt.SlicePlot(ds, 2, ('deposit', 'all_cic'))</div><div>     56 slc.set_figure_size(4)</div><div><br></div><div>/bigbang/data/bgriffen/lib/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc in __getitem__(self, key)</div>






<div>    205         Returns a single field.  Will add if necessary.</div><div>    206         """</div><div>--> 207         f = self._determine_fields([key])[0]</div><div>    208         if f not in self.field_data and key not in self.field_data:</div>






<div>    209             if f in self._container_fields:</div><div><br></div><div>/bigbang/data/bgriffen/lib/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc in _determine_fields(self, fields)</div><div>    453                     raise YTFieldNotParseable(field)</div>






<div>    454                 ftype, fname = field</div><div>--> 455                 finfo = self.pf._get_field_info(ftype, fname)</div><div>    456             else:</div><div>    457                 fname = field</div>






<div><br></div><div>/bigbang/data/bgriffen/lib/yt-x86_64/src/yt-hg/yt/data_objects/static_output.pyc in _get_field_info(self, ftype, fname)</div><div>    445     _last_finfo = None</div><div>    446     def _get_field_info(self, ftype, fname = None):</div>






<div>--> 447         self.index</div><div>    448         if fname is None:</div><div>    449             ftype, fname = "unknown", ftype</div><div><br></div><div>/bigbang/data/bgriffen/lib/yt-x86_64/src/yt-hg/yt/data_objects/static_output.pyc in index(self)</div>






<div>    277                 raise RuntimeError("You should not instantiate Dataset.")</div><div>    278             self._instantiated_index = self._index_class(</div><div>--> 279                 self, dataset_type=self.dataset_type)</div>






<div>    280             # Now we do things that we need an instantiated index for</div><div>    281             # ...first off, we create our field_info now.</div><div><br></div><div>/bigbang/data/bgriffen/lib/yt-x86_64/src/yt-hg/yt/frontends/stream/data_structures.pyc in __init__(self, pf, dataset_type)</div>






<div>    942     def __init__(self, pf, dataset_type = None):</div><div>    943         self.stream_handler = pf.stream_handler</div><div>--> 944         super(StreamParticleIndex, self).__init__(pf, dataset_type)</div>






<div>    945 </div><div>    946     def _setup_data_io(self):</div><div><br></div><div>/bigbang/data/bgriffen/lib/yt-x86_64/src/yt-hg/yt/geometry/particle_geometry_handler.pyc in __init__(self, pf, dataset_type)</div><div>






     48         self.directory = os.path.dirname(self.index_filename)</div><div>     49         self.float_type = np.float64</div><div>---> 50         super(ParticleIndex, self).__init__(pf, dataset_type)</div><div>     51 </div>






<div>     52     def _setup_geometry(self):</div><div><br></div><div>/bigbang/data/bgriffen/lib/yt-x86_64/src/yt-hg/yt/geometry/geometry_handler.pyc in __init__(self, pf, dataset_type)</div><div>     54 </div><div>     55         mylog.debug("Setting up domain geometry.")</div>






<div>---> 56         self._setup_geometry()</div><div>     57 </div><div>     58         mylog.debug("Initializing data grid data IO")</div><div><br></div><div>/bigbang/data/bgriffen/lib/yt-x86_64/src/yt-hg/yt/geometry/particle_geometry_handler.pyc in _setup_geometry(self)</div>






<div>     52     def _setup_geometry(self):</div><div>     53         mylog.debug("Initializing Particle Geometry Handler.")</div><div>---> 54         self._initialize_particle_handler()</div><div>     55 </div>






<div>     56 </div><div><br></div><div>/bigbang/data/bgriffen/lib/yt-x86_64/src/yt-hg/yt/geometry/particle_geometry_handler.pyc in _initialize_particle_handler(self)</div><div>     87                 pf.domain_left_edge, pf.domain_right_edge,</div>






<div>     88                 [N, N, N], len(self.data_files))</div><div>---> 89         self._initialize_indices()</div><div>     90         self.oct_handler.finalize()</div><div>     91         self.max_level = self.oct_handler.max_level</div>






<div><br></div><div>/bigbang/data/bgriffen/lib/yt-x86_64/src/yt-hg/yt/geometry/particle_geometry_handler.pyc in _initialize_indices(self)</div><div>    109             npart = sum(data_file.total_particles.values())</div>






<div>    110             morton[ind:ind + npart] = \</div><div>--> 111                 self.io._initialize_index(data_file, self.regions)</div><div>    112             ind += npart</div><div>    113         morton.sort()</div>






<div><br></div><div>/bigbang/data/bgriffen/lib/yt-x86_64/src/yt-hg/yt/frontends/stream/io.pyc in _initialize_index(self, data_file, regions)</div><div>    144                 raise YTDomainOverflow(pos.min(axis=0), pos.max(axis=0),</div>






<div>    145                                        data_file.pf.domain_left_edge,</div><div>--> 146                                        data_file.pf.domain_right_edge)</div><div>    147             regions.add_data_file(pos, data_file.file_id)</div>






<div>    148             morton.append(compute_morton(</div><div><br></div><div>YTDomainOverflow: Particle bounds [ 0.  0.  0.] and [ 99.99999237  99.99999237  99.99999237] exceed domain bounds [ 0.  0.  0.] code_length and [ 1.  1.  1.] code_length</div>






</div><div><br></div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 5, 2014 at 8:22 PM, Nathan Goldbaum <span dir="ltr"><<a href="mailto:nathan12343@gmail.com" target="_blank">nathan12343@gmail.com</a>></span> wrote:<br>






<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Here's a worked out example that does what you're looking for using a fake 1 million particle dataset:<div>






<br></div><div><a href="http://nbviewer.ipython.org/gist/ngoldbaum/546d37869aafe71cfe38" target="_blank">http://nbviewer.ipython.org/gist/ngoldbaum/546d37869aafe71cfe38</a><br>

</div><div><br></div><div>In this notebook I make use of two key yt features: `load_particles`, and `covering_grid`.  </div><div><br></div><div>load_particles creates a "stream" dataset based on in-memory data fed in as a numpy array.  This dataset acts just like an on-disk simulation dataset, but doesn't come with the baggage of needing to write a custom frontend to read a specific data format off disk.<br>








</div><div><br></div><div>covering_grid is a way to generate uniform resolution data from an AMR dataset. It acts like a python dictionary where the keys are field names and returns 3D numpy arrays of whatever uniform resolution you specify when you create the covering_grid.</div>








<div><br></div><div>Note that if you're using load_particles all of your data needs to live in memory.  If your data is too big for that you'll need to write a frontend for your data format or use a memmap to an on-disk file somehow.  I'm not an expert on that but others on the list should be able to help out.</div>








<div><br></div><div>Hope that gets you well on your way :)</div><span><font color="#888888"><div><br></div><div>-Nathan</div></font></span></div><div><div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Thu, Jun 5, 2014 at 5:04 PM, Desika Narayanan <span dir="ltr"><<a href="mailto:dnarayan@haverford.edu" target="_blank">dnarayan@haverford.edu</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hey Brendan,<div><br></div><div>A couple of extra tools you might find helpful in conjunction with Nathan's example of depositing the particles onto an octree are at:</div>








<div><br></div><div><a href="http://paste.yt-project.org/show/4737/" target="_blank">http://paste.yt-project.org/show/4737/</a><br>

</div><div><br></div><div>Where I load a gadget snapshot, and then recover the coordinates and width of each cell.  </div><div><br></div><div>In response to your last question - the particles are deposited into an octree grid (so, you'll see that the cell sizes aren't all the same size).   I don't know if depositing onto a regular NxNxN mesh is possible, though would be interested to hear if so.</div>








<span><font color="#888888">

<div><br></div><div>-d</div></font></span></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 5, 2014 at 7:58 PM, Brendan Griffen <span dir="ltr"><<a href="mailto:brendan.f.griffen@gmail.com" target="_blank">brendan.f.griffen@gmail.com</a>></span> wrote:<br>










<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks. I'll get the "bleeding edge" version first then try your suggestions. Though I want to return the NxNxN array and be able to write this mesh to a file. It is *only* using the cic part of yt and it should return the mesh to be written? Just wanted to clarify?<div>











<br></div><div>Thanks.<span><font color="#888888"><br><div>Brendan</div></font></span></div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 5, 2014 at 6:49 PM, Nathan Goldbaum <span dir="ltr"><<a href="mailto:nathan12343@gmail.com" target="_blank">nathan12343@gmail.com</a>></span> wrote:<br>











<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div>On Thu, Jun 5, 2014 at 3:36 PM, John ZuHone <span dir="ltr"><<a href="mailto:jzuhone@gmail.com" target="_blank">jzuhone@gmail.com</a>></span> wrote:<br>













<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi Brendan,<br>
<br>
Which version of yt are you using?<br>
<br>
If you're using 3.0, this is actually fairly easy. If you look in <a href="http://yt.fields.particle_fields.py" target="_blank">yt.fields.particle_fields.py</a>, around line 85, you can see how this is done for the "particle_density" and "particle_mass" fields. Basically you can call a "deposit" method which takes the particle field quantity you want deposited and deposits it into cells. The underlying calculation is done using Cython, so it's fast.<br>













</blockquote><div><br></div></div><div>And you shouldn't ever actually need to call these "deposit" functions, since "deposit" is exposed as a field type for all datasets that contain particles.</div>











<div>

<br></div><div>Here is a notebook that does this for Enzo AMR data:</div><div><br></div><div><a href="http://nbviewer.ipython.org/gist/ngoldbaum/5e19e4e6cc2bf330149c" target="_blank">http://nbviewer.ipython.org/gist/ngoldbaum/5e19e4e6cc2bf330149c</a><br>













</div><div><br></div><div>This dataset contains about a million particles and generates a CIC deposition for the whole domain in about 6 seconds from a cold start.</div><div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">














<br>
If you're using 2.x, then you can do the same thing, but it's not as straightforward. You can see how this works in <a href="http://yt.data_objects.universal_fields.py" target="_blank">yt.data_objects.universal_fields.py</a>, around line 986, where the "particle_density" field is defined. Basically, it calls CICDeposit_3, which is in yt.utilities.lib.CICDeposit.pyx.<br>














<br>
Let me know if you need any more clarification.<br>
<br>
Best,<br>
<br>
John Z<br>
<div><div><br>
On Jun 5, 2014, at 6:07 PM, Brendan Griffen <<a href="mailto:brendan.f.griffen@gmail.com" target="_blank">brendan.f.griffen@gmail.com</a>> wrote:<br>
<br>
> Hi,<br>
><br>
> I was wondering if there were any Cython routines within yt which takes particle data and converts it into a cloud-in-cell based mesh which can be written to a file of my choosing. </div></div></blockquote><div><br>













</div></div><div>What sort of mesh were you looking for?  yt will internally construct an octree if it is fed particle data.  I'm not sure whether this octree can be saved to disk for later analysis.  </div><div><br>











</div>
<div>
It's also possible to create a uniform resolution covering grid containing field data for a deposited quantity, which can be quite easily saved to disk in a number of ways.</div><div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">













<div><div>I heard a while ago there was some such functionality but it could be too far down the yt rabbit hole to be used as a standalone? Is this true? I have my own Python code for doing it but it just isn't fast enough and thought I'd ask the yt community if there were any wrapper tools available to boost the speed.<br>














><br>
> Thanks.<br>
> Brendan<br>
</div></div>> _______________________________________________<br>
> yt-users mailing list<br>
> <a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br>
> <a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
<br>
_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
</blockquote></div></div><br></div></div>
<br>_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
<br></blockquote></div></div></div><br></div></div>
<br>_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
<br></blockquote></div><br></div></div>