-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docu: examples for sfs.array #97
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMHO the file names of the two new files are not great.
Could you probably choose something a bit more descriptive?
changed to |
please double check changing rostock array data: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for changing the file names, they are much better now.
Could you please make sure to squash your commits at some point in order to remove the temporarily commited .rst
files from the Git history?
AFAICT this was not a bug. The words "horizontal" and "vertical" in the docstring refer to the array's default With your "fix" the behavior is reversed with regards to the description. |
I double checked what's going on. In fact neither the original version as well as the "bugfix" solving the problem in a consistent way, both sometimes are correct and sometimes not in terms of math. For orientation = (0,0,1) the fixed version is doing what the user might expect from the given documentation, that is the current example. However, we need to fix this for proper and general handling. I'd suggest: planar((u,v), (Nu,Nv), (du,dv), center=[0, 0, 0]) which is mathematically consistent. Problem here is that u and v must be orthogonal, since remaining calculations rely on that assumption. However, this appears to be the best handling rather than others that involve additional rotation/looking direction information when using only u. In order for simple and fast usage we should think about very often used defaults, such as 'xy', 'yz', 'zx' planes with normals (i) into the remaining cartesian axis or (ii) flipped (equivalent to 'yx', 'zy', 'xz'-planes). I don't know what the most elegant handling would be. |
@fs446 Can you please remove your "fix" from this PR and create a new issue (and/or PR if you want) for the issue you described above? |
#97 (comment) #97 (comment) I find this more meaningful: This fixes planar() such that the docstring comment for the horizontal/vertical dimension intuitively make sense for the xy-plane rather than the original planar() before raising issue #97, there the yz-plane was chose, where definition is ambigious
could do this, but I'd vote for
de29425
… On 6. Mar 2019, at 6:37 PM, Matthias Geier ***@***.***> wrote:
@fs446 Can you please remove your "fix" from this PR and create a new issue (and/or PR if you want) for the issue you described above?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Now that
|
I'd vote against, because this doesn't make sense given the current text in the docstring:
If I guess we have different understanding of the words "orientation" and/or "edge" and/or "vertical" and/or "horizontal". Or probably "x", "y" and "z"? Just to be clear: "horizontal" means for me: any direction that has a zero z-component, i.e. Linear arrays are by default "horizontal", so are rectangular and circular ones (which I guess is the typical use case). The Planar arrays should IMHO have a default primary radiation direction that is horizontal (which is the main thing I've seen on real loudspeaker arrays so far). I agree that there is a problem with the orientation of arrays (in contrast to assumed rotational-symmetric-along-their-main-axis single loudspeakers) because when only providing one orientation vector, one degree of freedom stays undefined. That's why I opened #36.
For the version before your changes, do you mean the case
This sounds overly complicated, but more importantly it's not consistent with the current API of
Probably it would be enough to provide a list of example invocations in the documentation? |
On 7. Mar 2019, at 3:58 PM, Matthias Geier ***@***.***> wrote:
@fs446:
could do this, but I'd vote for de29425
I'd vote against, because this doesn't make sense given the current text in the docstring:
If a pair of numbers is given, the first one specifies the number on the horizontal edge, the second one specifies the number on the vertical edge.
If orientation=[0, 0, 1] is given, there is no vertical edge, there are only two horizontal edges!
I guess we have different understanding of the words "orientation" and/or "edge" and/or "vertical" and/or "horizontal". Or probably "x", "y" and "z"?
Just to be clear: "horizontal" means for me: any direction that has a zero z-component, i.e. [x, y, 0]. "vertical" means for me: the direction that has only a z-component, i.e. [0, 0, z].
Linear arrays are by default "horizontal", so are rectangular and circular ones (which I guess is the typical use case).
The orientation in the sfs.array module so far has meant the orientation of the loudspeakers themselves (or one reference loudspeaker in case they have different orientations), not necessarily the lines or planes or whatever they are on.
Planar arrays should IMHO have a default primary radiation direction that is horizontal (which is the main thing I've seen on real loudspeaker arrays so far).
Your suggestion orientation=[0, 0, 1] would mean that the main radiation direction would be up to the ceiling.
Ok, now I see your point! Slightly different viewpoints/understandings indeed, but yours is consistent with the current usage. I will restore to state before "bugfixing".
I agree that there is a problem with the orientation of arrays (in contrast to assumed rotational-symmetric-along-their-main-axis single loudspeakers) because when only providing one orientation vector, one degree of freedom stays undefined. That's why I opened #36.
Yes, that is about the same problem then.
Currently, the rotations are still well-defined (except probably orientation=[-1, 0, 0]?), but the chosen rotation might not be obvious.
And what's probably worse, it's not possible to get to all possible rotations.
You might have to do a second (and third?) rotation to get to an arbitrary orientation.
both sometimes are correct and sometimes not in terms of math.
For the version before your changes, do you mean the case orientation=[-1, 0, 0]?
Yes.
Or some other cases?
planar((u,v), (Nu,Nv), (du,dv), center=[0, 0, 0])
This sounds overly complicated,
For me its not, but probably a user should not be forced to span a vector space just to define a planar SSD.
The handling would be most consistent in terms of math.
but more importantly it's not consistent with the current API of linear() and the other functions in the module.
Yeah, I was not thinking about the consequences.
How would you extend those to become consistent?
Don't know yet.
In order for simple and fast usage we should think about very often used defaults, such as 'xy', 'yz', 'zx' planes with normals (i) into the remaining cartesian axis or (ii) flipped (equivalent to 'yx', 'zy', 'xz'-planes). I don't know what the most elegant handling would be.
Probably it would be enough to provide a list of example invocations in the documentation?
Yes, that's a good idea. I will provide this.
… —
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
b035e3f
to
699be57
Compare
ready for master? |
We are very close. This is still not addressed: #97 (comment). |
-Old "university_rostock.csv" as of 2015 is "wfs_university_rostock_2015.csv" now. New measurement data of december 2018 is stored in "wfs_university_rostock_2018" and now includes absolute height (z coordinate, KH120 logo) and weights of the 64 loudspeakers.
added examples for array functions
need further changes when loudspeaker_2d,_3d handling is optimized
please double check the bugfix in planar() where N1 and N2 were exchanged