Hello, I have a cloud on sparse points that can be described by a Nx3 array (N is the number of points). Each point is defined by an x, y and z coordinate: x0 y0 z0 x1 y1 z1 . . . . . . . . . xn yn zn I need to bin the cloud to a regular 2D array according to a desired bin size assigning to each cell (bin) the minimum z of all points that fall in that cell(bin). Moreover I need indexes of points that fall in each cell(bin). Is there any way to accomplish this task in numpy? Thanks. Nicola Creati -- Nicola Creati Istituto Nazionale di Oceanografia e di Geofisica Sperimentale - OGS www.inogs.it Dipartimento di Geofisica della Litosfera Geophysics of Lithosphere Department CARS (Cartography and Remote Sensing) Research Group http://www.inogs.it/Cars/ Borgo Grotta Gigante 42/c 34010 Sgonico - Trieste - ITALY ncreati@ogs.trieste.it off. +39 040 2140 213 fax. +39 040 327307 _____________________________________________________________________ This communication, that may contain confidential and/or legally privileged information, is intended solely for the use of the intended addressees. Opinions, conclusions and other information contained in this message, that do not relate to the official business of OGS, shall be considered as not given or endorsed by it. Every opinion or advice contained in this communication is subject to the terms and conditions provided by the agreement governing the engagement with such a client. Any use, disclosure, copying or distribution of the contents of this communication by a not-intended recipient or in violation of the purposes of this communication is strictly prohibited and may be unlawful. For Italy only: Ai sensi del D.Lgs.196/2003 - "T.U. sulla Privacy" si precisa che le informazioni contenute in questo messaggio sono riservate ed a uso esclusivo del destinatario. _____________________________________________________________________
Hello Nicola, I am not aware of a magical "one function" numpy solution (is there one numpy gurus?). I don't know if it's optimal, but here's how I usually do similar things. I wrote a simple function that assigns points (any number of dimensions) to a regular multi-dimensional grid. It is here: https://gist.github.com/1509853 It is short, commented and should be straightforward to use. Once you have the assignments, you can: - get the non-empty cell indexes with `np.unique(assignments)` - retrieve the points assigned to a cell with `points[assignments == cell_index]` - iterate over assignments to select the points you want for each cell. Hope this helps, Adrien PS: This is one of the first times I post an answer on this list, so if I did anything wrong, let me know. Numpy is such a wonderful thing and you guys do such an amazing work, that I though it is time to give back at least epsilon of what I got from you :-) 2011/12/22 Nicola Creati <ncreati@inogs.it>
Hello,
I have a cloud on sparse points that can be described by a Nx3 array (N is the number of points). Each point is defined by an x, y and z coordinate:
x0 y0 z0 x1 y1 z1 . . . . . . . . . xn yn zn
I need to bin the cloud to a regular 2D array according to a desired bin size assigning to each cell (bin) the minimum z of all points that fall in that cell(bin). Moreover I need indexes of points that fall in each cell(bin).
Is there any way to accomplish this task in numpy?
Thanks.
Nicola Creati
-- Nicola Creati Istituto Nazionale di Oceanografia e di Geofisica Sperimentale - OGS www.inogs.it Dipartimento di Geofisica della Litosfera Geophysics of Lithosphere Department CARS (Cartography and Remote Sensing) Research Group http://www.inogs.it/Cars/ Borgo Grotta Gigante 42/c 34010 Sgonico - Trieste - ITALY ncreati@ogs.trieste.it off. +39 040 2140 213 fax. +39 040 327307
_____________________________________________________________________ This communication, that may contain confidential and/or legally privileged information, is intended solely for the use of the intended addressees. Opinions, conclusions and other information contained in this message, that do not relate to the official business of OGS, shall be considered as not given or endorsed by it. Every opinion or advice contained in this communication is subject to the terms and conditions provided by the agreement governing the engagement with such a client. Any use, disclosure, copying or distribution of the contents of this communication by a not-intended recipient or in violation of the purposes of this communication is strictly prohibited and may be unlawful. For Italy only: Ai sensi del D.Lgs.196/2003 - "T.U. sulla Privacy" si precisa che le informazioni contenute in questo messaggio sono riservate ed a uso esclusivo del destinatario. _____________________________________________________________________
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
On Thu, Dec 22, 2011 at 6:27 AM, Adrien Gaidon <adnothing@gmail.com> wrote:
Hello Nicola,
I am not aware of a magical "one function" numpy solution (is there one numpy gurus?).
I don't know if it's optimal, but here's how I usually do similar things.
I wrote a simple function that assigns points (any number of dimensions) to a regular multi-dimensional grid. It is here: https://gist.github.com/1509853 It is short, commented and should be straightforward to use.
Once you have the assignments, you can: - get the non-empty cell indexes with `np.unique(assignments)` - retrieve the points assigned to a cell with `points[assignments == cell_index]` - iterate over assignments to select the points you want for each cell.
looks nice, reading through it. line 71 looks like a nice trick BSD licensed, so we can keep it? as far as I know numpy doesn't have anything like a digitize_nd Thanks, Josef
Hope this helps,
Adrien
PS: This is one of the first times I post an answer on this list, so if I did anything wrong, let me know. Numpy is such a wonderful thing and you guys do such an amazing work, that I though it is time to give back at least epsilon of what I got from you :-)
2011/12/22 Nicola Creati <ncreati@inogs.it>
Hello,
I have a cloud on sparse points that can be described by a Nx3 array (N is the number of points). Each point is defined by an x, y and z coordinate:
x0 y0 z0 x1 y1 z1 . . . . . . . . . xn yn zn
I need to bin the cloud to a regular 2D array according to a desired bin size assigning to each cell (bin) the minimum z of all points that fall in that cell(bin). Moreover I need indexes of points that fall in each cell(bin).
Is there any way to accomplish this task in numpy?
Thanks.
Nicola Creati
-- Nicola Creati Istituto Nazionale di Oceanografia e di Geofisica Sperimentale - OGS www.inogs.it Dipartimento di Geofisica della Litosfera Geophysics of Lithosphere Department CARS (Cartography and Remote Sensing) Research Group http://www.inogs.it/Cars/ Borgo Grotta Gigante 42/c 34010 Sgonico - Trieste - ITALY ncreati@ogs.trieste.it off. +39 040 2140 213 fax. +39 040 327307
_____________________________________________________________________ This communication, that may contain confidential and/or legally privileged information, is intended solely for the use of the intended addressees. Opinions, conclusions and other information contained in this message, that do not relate to the official business of OGS, shall be considered as not given or endorsed by it. Every opinion or advice contained in this communication is subject to the terms and conditions provided by the agreement governing the engagement with such a client. Any use, disclosure, copying or distribution of the contents of this communication by a not-intended recipient or in violation of the purposes of this communication is strictly prohibited and may be unlawful. For Italy only: Ai sensi del D.Lgs.196/2003 - "T.U. sulla Privacy" si precisa che le informazioni contenute in questo messaggio sono riservate ed a uso esclusivo del destinatario. _____________________________________________________________________
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
On Thu, Dec 22, 2011 at 11:17 AM, <josef.pktd@gmail.com> wrote:
On Thu, Dec 22, 2011 at 6:27 AM, Adrien Gaidon <adnothing@gmail.com> wrote:
Hello Nicola,
I am not aware of a magical "one function" numpy solution (is there one numpy gurus?).
I don't know if it's optimal, but here's how I usually do similar things.
I wrote a simple function that assigns points (any number of dimensions) to a regular multi-dimensional grid. It is here: https://gist.github.com/1509853 It is short, commented and should be straightforward to use.
Once you have the assignments, you can: - get the non-empty cell indexes with `np.unique(assignments)` - retrieve the points assigned to a cell with `points[assignments == cell_index]` - iterate over assignments to select the points you want for each cell.
looks nice, reading through it. line 71 looks like a nice trick
forgot the qualifier: if I understand it correctly, just quickly reading it. Josef
BSD licensed, so we can keep it?
as far as I know numpy doesn't have anything like a digitize_nd
Thanks,
Josef
Hope this helps,
Adrien
PS: This is one of the first times I post an answer on this list, so if I did anything wrong, let me know. Numpy is such a wonderful thing and you guys do such an amazing work, that I though it is time to give back at least epsilon of what I got from you :-)
2011/12/22 Nicola Creati <ncreati@inogs.it>
Hello,
I have a cloud on sparse points that can be described by a Nx3 array (N is the number of points). Each point is defined by an x, y and z coordinate:
x0 y0 z0 x1 y1 z1 . . . . . . . . . xn yn zn
I need to bin the cloud to a regular 2D array according to a desired bin size assigning to each cell (bin) the minimum z of all points that fall in that cell(bin). Moreover I need indexes of points that fall in each cell(bin).
Is there any way to accomplish this task in numpy?
Thanks.
Nicola Creati
-- Nicola Creati Istituto Nazionale di Oceanografia e di Geofisica Sperimentale - OGS www.inogs.it Dipartimento di Geofisica della Litosfera Geophysics of Lithosphere Department CARS (Cartography and Remote Sensing) Research Group http://www.inogs.it/Cars/ Borgo Grotta Gigante 42/c 34010 Sgonico - Trieste - ITALY ncreati@ogs.trieste.it off. +39 040 2140 213 fax. +39 040 327307
_____________________________________________________________________ This communication, that may contain confidential and/or legally privileged information, is intended solely for the use of the intended addressees. Opinions, conclusions and other information contained in this message, that do not relate to the official business of OGS, shall be considered as not given or endorsed by it. Every opinion or advice contained in this communication is subject to the terms and conditions provided by the agreement governing the engagement with such a client. Any use, disclosure, copying or distribution of the contents of this communication by a not-intended recipient or in violation of the purposes of this communication is strictly prohibited and may be unlawful. For Italy only: Ai sensi del D.Lgs.196/2003 - "T.U. sulla Privacy" si precisa che le informazioni contenute in questo messaggio sono riservate ed a uso esclusivo del destinatario. _____________________________________________________________________
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Le 22/12/2011 17:17, josef.pktd@gmail.com a écrit :
Hello Nicola,
I am not aware of a magical "one function" numpy solution (is there one numpy gurus?).
I don't know if it's optimal, but here's how I usually do similar things.
I wrote a simple function that assigns points (any number of dimensions) to a regular multi-dimensional grid. It is here: https://gist.github.com/1509853 It is short, commented and should be straightforward to use.
Once you have the assignments, you can: - get the non-empty cell indexes with `np.unique(assignments)` - retrieve the points assigned to a cell with `points[assignments == cell_index]` - iterate over assignments to select the points you want for each cell. looks nice, reading through it.
On Thu, Dec 22, 2011 at 6:27 AM, Adrien Gaidon<adnothing@gmail.com> wrote: line 71 looks like a nice trick
BSD licensed, so we can keep it?
Off course! :-) Cheers, Adrien
as far as I know numpy doesn't have anything like a digitize_nd
Thanks,
Josef
Hope this helps,
Adrien
PS: This is one of the first times I post an answer on this list, so if I did anything wrong, let me know. Numpy is such a wonderful thing and you guys do such an amazing work, that I though it is time to give back at least epsilon of what I got from you :-)
2011/12/22 Nicola Creati<ncreati@inogs.it>
Hello,
I have a cloud on sparse points that can be described by a Nx3 array (N is the number of points). Each point is defined by an x, y and z coordinate:
x0 y0 z0 x1 y1 z1 . . . . . . . . . xn yn zn
I need to bin the cloud to a regular 2D array according to a desired bin size assigning to each cell (bin) the minimum z of all points that fall in that cell(bin). Moreover I need indexes of points that fall in each cell(bin).
Is there any way to accomplish this task in numpy?
Thanks.
Nicola Creati
-- Nicola Creati Istituto Nazionale di Oceanografia e di Geofisica Sperimentale - OGS www.inogs.it Dipartimento di Geofisica della Litosfera Geophysics of Lithosphere Department CARS (Cartography and Remote Sensing) Research Group http://www.inogs.it/Cars/ Borgo Grotta Gigante 42/c 34010 Sgonico - Trieste - ITALY ncreati@ogs.trieste.it off. +39 040 2140 213 fax. +39 040 327307
_____________________________________________________________________ This communication, that may contain confidential and/or legally privileged information, is intended solely for the use of the intended addressees. Opinions, conclusions and other information contained in this message, that do not relate to the official business of OGS, shall be considered as not given or endorsed by it. Every opinion or advice contained in this communication is subject to the terms and conditions provided by the agreement governing the engagement with such a client. Any use, disclosure, copying or distribution of the contents of this communication by a not-intended recipient or in violation of the purposes of this communication is strictly prohibited and may be unlawful. For Italy only: Ai sensi del D.Lgs.196/2003 - "T.U. sulla Privacy" si precisa che le informazioni contenute in questo messaggio sono riservate ed a uso esclusivo del destinatario. _____________________________________________________________________
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
On Thu, Dec 22, 2011 at 11:39 AM, Adrien <adnothing@gmail.com> wrote:
Le 22/12/2011 17:17, josef.pktd@gmail.com a écrit :
Hello Nicola,
I am not aware of a magical "one function" numpy solution (is there one numpy gurus?).
I don't know if it's optimal, but here's how I usually do similar things.
I wrote a simple function that assigns points (any number of dimensions) to a regular multi-dimensional grid. It is here: https://gist.github.com/1509853 It is short, commented and should be straightforward to use.
Once you have the assignments, you can: - get the non-empty cell indexes with `np.unique(assignments)` - retrieve the points assigned to a cell with `points[assignments == cell_index]` - iterate over assignments to select the points you want for each cell. looks nice, reading through it.
On Thu, Dec 22, 2011 at 6:27 AM, Adrien Gaidon<adnothing@gmail.com> wrote: line 71 looks like a nice trick
BSD licensed, so we can keep it?
Off course! :-)
with numpy 1.5 compatibility, if I did it right (reverse engineering ravel_multi_index which I never used) https://gist.github.com/1511969/222e3316048bce5763b1004331af898088ffcd9e Josef
Cheers,
Adrien
as far as I know numpy doesn't have anything like a digitize_nd
Thanks,
Josef
Hope this helps,
Adrien
PS: This is one of the first times I post an answer on this list, so if I did anything wrong, let me know. Numpy is such a wonderful thing and you guys do such an amazing work, that I though it is time to give back at least epsilon of what I got from you :-)
2011/12/22 Nicola Creati<ncreati@inogs.it>
Hello,
I have a cloud on sparse points that can be described by a Nx3 array (N is the number of points). Each point is defined by an x, y and z coordinate:
x0 y0 z0 x1 y1 z1 . . . . . . . . . xn yn zn
I need to bin the cloud to a regular 2D array according to a desired bin size assigning to each cell (bin) the minimum z of all points that fall in that cell(bin). Moreover I need indexes of points that fall in each cell(bin).
Is there any way to accomplish this task in numpy?
Thanks.
Nicola Creati
-- Nicola Creati Istituto Nazionale di Oceanografia e di Geofisica Sperimentale - OGS www.inogs.it Dipartimento di Geofisica della Litosfera Geophysics of Lithosphere Department CARS (Cartography and Remote Sensing) Research Group http://www.inogs.it/Cars/ Borgo Grotta Gigante 42/c 34010 Sgonico - Trieste - ITALY ncreati@ogs.trieste.it off. +39 040 2140 213 fax. +39 040 327307
_____________________________________________________________________ This communication, that may contain confidential and/or legally privileged information, is intended solely for the use of the intended addressees. Opinions, conclusions and other information contained in this message, that do not relate to the official business of OGS, shall be considered as not given or endorsed by it. Every opinion or advice contained in this communication is subject to the terms and conditions provided by the agreement governing the engagement with such a client. Any use, disclosure, copying or distribution of the contents of this communication by a not-intended recipient or in violation of the purposes of this communication is strictly prohibited and may be unlawful. For Italy only: Ai sensi del D.Lgs.196/2003 - "T.U. sulla Privacy" si precisa che le informazioni contenute in questo messaggio sono riservate ed a uso esclusivo del destinatario. _____________________________________________________________________
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
participants (4)
-
Adrien -
Adrien Gaidon -
josef.pktd@gmail.com -
Nicola Creati