Issue #1132: [Experimental] camera.width is currently assumed to be a yt array, contrary to what it currently says in the docs (yt_analysis/yt)
New issue 1132: [Experimental] camera.width is currently assumed to be a yt array, contrary to what it currently says in the docs https://bitbucket.org/yt_analysis/yt/issues/1132/experimental-camerawidth-is... Andrew Myers: You can see this by trying to render something with a default-constructed Camera: ``` #!python import yt import numpy as np from yt.visualization.volume_rendering.api import Scene, PointSource, Camera sc = Scene() npoints = 1000 vertices = np.random.random([npoints, 3]) colors = np.random.random([npoints, 4]) colors[:,3] = 1.0 source = PointSource(vertices, colors=colors) sc.add_source(source) cam = Camera() cam.focus = np.array([0.5, 0.5, 0.5]) sc.camera = cam im = sc.render() ``` ``` #!python --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-1-9e1f41c9da61> in <module>() 15 cam.focus = np.array([0.5, 0.5, 0.5]) 16 sc.camera = cam ---> 17 im = sc.render() /Users/atmyers/yt-x86_64/src/yt-hg/yt/visualization/volume_rendering/scene.pyc in render(self, sigma_clip, camera) 159 assert(camera is not None) 160 self._validate() --> 161 bmp = self.composite(camera=camera) 162 self.last_render = bmp 163 return bmp /Users/atmyers/yt-x86_64/src/yt-hg/yt/visualization/volume_rendering/scene.pyc in composite(self, camera) 259 260 for k, source in self._iter_opaque_sources(): --> 261 opaque = source.render(camera, zbuffer=opaque) 262 im = opaque.rgba 263 /Users/atmyers/yt-x86_64/src/yt-hg/yt/visualization/volume_rendering/render_source.pyc in render(self, camera, zbuffer) 501 # DRAW SOME POINTS 502 camera.lens.setup_box_properties(camera) --> 503 px, py, dz = camera.lens.project_to_plane(camera, vertices) 504 zpoints(empty, z, px.d, py.d, dz.d, self.colors, self.color_stride) 505 /Users/atmyers/yt-x86_64/src/yt-hg/yt/visualization/volume_rendering/lens.py in project_to_plane(self, camera, pos, res) 123 dz = np.dot(pos - self.front_center.d, -camera.unit_vectors[2]) 124 # Transpose into image coords. --> 125 py = (res[0]*(dx/camera.width[0].d)).astype('int') 126 px = (res[1]*(dy/camera.width[1].d)).astype('int') 127 return px, py, dz AttributeError: 'numpy.float64' object has no attribute 'd' ``` Responsible: atmyers
participants (1)
-
Andrew Myers