[Python] What is causing some points to fail sampling an enclosing mesh? / How do I prevent...

Discussão em 'Python' iniciado por Stack, Janeiro 23, 2025.

  1. Stack

    Stack Membro Participativo

    I am using the PyVista package to resample a .vtk mesh of nonconforming rectangular prisms onto a grid of points. However, some of the points fail to sample the dataset, which results in a "0" value in the index of that point in pointset_sample.point_data['vtkValidPointMask'] and either 0 or some NaN color value when plotting the points.

    Here's a minimal reproducible example:

    mesh.vtk:

    # vtk DataFile Version 2.0
    MeshData
    ASCII
    DATASET UNSTRUCTURED_GRID
    POINTS 207 float
    -2500 -2500 -400
    -1500 -2500 -400
    -500 -2500 -400
    500 -2500 -400
    1500 -2500 -400
    2500 -2500 -400
    -2500 -1500 -400
    -1500 -1500 -400
    -500 -1500 -400
    500 -1500 -400
    1500 -1500 -400
    2500 -1500 -400
    -2500 -500 -400
    -1500 -500 -400
    -500 -500 -400
    500 -500 -400
    1500 -500 -400
    2500 -500 -400
    -2500 500 -400
    -1500 500 -400
    -500 500 -400
    500 500 -400
    1500 500 -400
    2500 500 -400
    -2500 1500 -400
    -1500 1500 -400
    -500 1500 -400
    500 1500 -400
    1500 1500 -400
    2500 1500 -400
    -2500 2500 -400
    -1500 2500 -400
    -500 2500 -400
    500 2500 -400
    1500 2500 -400
    2500 2500 -400
    -2500 -2500 0
    -1500 -2500 0
    -500 -2500 0
    500 -2500 0
    1500 -2500 0
    2500 -2500 0
    -2500 -1500 0
    -1500 -1500 0
    -500 -1500 0
    500 -1500 0
    1500 -1500 0
    2500 -1500 0
    -2500 -500 0
    -1500 -500 0
    -500 -500 0
    500 -500 0
    1500 -500 0
    2500 -500 0
    -2500 500 0
    -1500 500 0
    -500 500 0
    500 500 0
    1500 500 0
    2500 500 0
    -2500 1500 0
    -1500 1500 0
    -500 1500 0
    500 1500 0
    1500 1500 0
    2500 1500 0
    -2500 2500 0
    -1500 2500 0
    -500 2500 0
    500 2500 0
    1500 2500 0
    2500 2500 0
    -2500 -2500 1600
    -1500 -2500 1600
    -500 -2500 1600
    500 -2500 1600
    1500 -2500 1600
    2500 -2500 1600
    -2500 -1500 1600
    -1500 -1500 1600
    -500 -1500 1600
    500 -1500 1600
    1500 -1500 1600
    2500 -1500 1600
    -2500 -500 1600
    -1500 -500 1600
    -500 -500 1600
    500 -500 1600
    1500 -500 1600
    2500 -500 1600
    -2500 500 1600
    -1500 500 1600
    -500 500 1600
    500 500 1600
    1500 500 1600
    2500 500 1600
    -2500 1500 1600
    -1500 1500 1600
    -500 1500 1600
    500 1500 1600
    1500 1500 1600
    2500 1500 1600
    -2500 2500 1600
    -1500 2500 1600
    -500 2500 1600
    500 2500 1600
    1500 2500 1600
    2500 2500 1600
    -1000 -1500 -400
    -1500 -1000 -400
    -1000 -1000 -400
    -500 -1000 -400
    -1000 -500 -400
    -1000 -1500 0
    -1500 -1000 0
    -1000 -1000 0
    -500 -1000 0
    -1000 -500 0
    0 -1500 -400
    0 -1000 -400
    500 -1000 -400
    0 -500 -400
    0 -1500 0
    0 -1000 0
    500 -1000 0
    0 -500 0
    1000 -1500 -400
    1000 -1000 -400
    1500 -1000 -400
    1000 -500 -400
    1000 -1500 0
    1000 -1000 0
    1500 -1000 0
    1000 -500 0
    -1500 0 -400
    -1000 0 -400
    -500 0 -400
    -1000 500 -400
    -1500 0 0
    -1000 0 0
    -500 0 0
    -1000 500 0
    0 0 -400
    500 0 -400
    0 500 -400
    0 0 0
    500 0 0
    0 500 0
    1000 0 -400
    1500 0 -400
    1000 500 -400
    1000 0 0
    1500 0 0
    1000 500 0
    -1500 1000 -400
    -1000 1000 -400
    -500 1000 -400
    -1000 1500 -400
    -1500 1000 0
    -1000 1000 0
    -500 1000 0
    -1000 1500 0
    0 1000 -400
    500 1000 -400
    0 1500 -400
    0 1000 0
    500 1000 0
    0 1500 0
    1000 1000 -400
    1500 1000 -400
    1000 1500 -400
    1000 1000 0
    1500 1000 0
    1000 1500 0
    -1000 -1500 1600
    -1500 -1000 1600
    -1000 -1000 1600
    -500 -1000 1600
    -1000 -500 1600
    0 -1500 1600
    0 -1000 1600
    500 -1000 1600
    0 -500 1600
    1000 -1500 1600
    1000 -1000 1600
    1500 -1000 1600
    1000 -500 1600
    -1500 0 1600
    -1000 0 1600
    -500 0 1600
    -1000 500 1600
    0 0 1600
    500 0 1600
    0 500 1600
    1000 0 1600
    1500 0 1600
    1000 500 1600
    -1500 1000 1600
    -1000 1000 1600
    -500 1000 1600
    -1000 1500 1600
    0 1000 1600
    500 1000 1600
    0 1500 1600
    1000 1000 1600
    1500 1000 1600
    1000 1500 1600
    CELLS 104 936
    8 0 1 7 6 36 37 43 42
    8 1 2 8 7 37 38 44 43
    8 2 3 9 8 38 39 45 44
    8 3 4 10 9 39 40 46 45
    8 4 5 11 10 40 41 47 46
    8 6 7 13 12 42 43 49 48
    8 10 11 17 16 46 47 53 52
    8 12 13 19 18 48 49 55 54
    8 16 17 23 22 52 53 59 58
    8 18 19 25 24 54 55 61 60
    8 22 23 29 28 58 59 65 64
    8 24 25 31 30 60 61 67 66
    8 25 26 32 31 61 62 68 67
    8 26 27 33 32 62 63 69 68
    8 27 28 34 33 63 64 70 69
    8 28 29 35 34 64 65 71 70
    8 36 37 43 42 72 73 79 78
    8 37 38 44 43 73 74 80 79
    8 38 39 45 44 74 75 81 80
    8 39 40 46 45 75 76 82 81
    8 40 41 47 46 76 77 83 82
    8 42 43 49 48 78 79 85 84
    8 46 47 53 52 82 83 89 88
    8 48 49 55 54 84 85 91 90
    8 52 53 59 58 88 89 95 94
    8 54 55 61 60 90 91 97 96
    8 58 59 65 64 94 95 101 100
    8 60 61 67 66 96 97 103 102
    8 61 62 68 67 97 98 104 103
    8 62 63 69 68 98 99 105 104
    8 63 64 70 69 99 100 106 105
    8 64 65 71 70 100 101 107 106
    8 7 108 110 109 43 113 115 114
    8 108 8 111 110 113 44 116 115
    8 109 110 112 13 114 115 117 49
    8 110 111 14 112 115 116 50 117
    8 8 118 119 111 44 122 123 116
    8 118 9 120 119 122 45 124 123
    8 111 119 121 14 116 123 125 50
    8 119 120 15 121 123 124 51 125
    8 9 126 127 120 45 130 131 124
    8 126 10 128 127 130 46 132 131
    8 120 127 129 15 124 131 133 51
    8 127 128 16 129 131 132 52 133
    8 13 112 135 134 49 117 139 138
    8 112 14 136 135 117 50 140 139
    8 134 135 137 19 138 139 141 55
    8 135 136 20 137 139 140 56 141
    8 14 121 142 136 50 125 145 140
    8 121 15 143 142 125 51 146 145
    8 136 142 144 20 140 145 147 56
    8 142 143 21 144 145 146 57 147
    8 15 129 148 143 51 133 151 146
    8 129 16 149 148 133 52 152 151
    8 143 148 150 21 146 151 153 57
    8 148 149 22 150 151 152 58 153
    8 19 137 155 154 55 141 159 158
    8 137 20 156 155 141 56 160 159
    8 154 155 157 25 158 159 161 61
    8 155 156 26 157 159 160 62 161
    8 20 144 162 156 56 147 165 160
    8 144 21 163 162 147 57 166 165
    8 156 162 164 26 160 165 167 62
    8 162 163 27 164 165 166 63 167
    8 21 150 168 163 57 153 171 166
    8 150 22 169 168 153 58 172 171
    8 163 168 170 27 166 171 173 63
    8 168 169 28 170 171 172 64 173
    8 43 113 115 114 79 174 176 175
    8 113 44 116 115 174 80 177 176
    8 114 115 117 49 175 176 178 85
    8 115 116 50 117 176 177 86 178
    8 44 122 123 116 80 179 180 177
    8 122 45 124 123 179 81 181 180
    8 116 123 125 50 177 180 182 86
    8 123 124 51 125 180 181 87 182
    8 45 130 131 124 81 183 184 181
    8 130 46 132 131 183 82 185 184
    8 124 131 133 51 181 184 186 87
    8 131 132 52 133 184 185 88 186
    8 49 117 139 138 85 178 188 187
    8 117 50 140 139 178 86 189 188
    8 138 139 141 55 187 188 190 91
    8 139 140 56 141 188 189 92 190
    8 50 125 145 140 86 182 191 189
    8 125 51 146 145 182 87 192 191
    8 140 145 147 56 189 191 193 92
    8 145 146 57 147 191 192 93 193
    8 51 133 151 146 87 186 194 192
    8 133 52 152 151 186 88 195 194
    8 146 151 153 57 192 194 196 93
    8 151 152 58 153 194 195 94 196
    8 55 141 159 158 91 190 198 197
    8 141 56 160 159 190 92 199 198
    8 158 159 161 61 197 198 200 97
    8 159 160 62 161 198 199 98 200
    8 56 147 165 160 92 193 201 199
    8 147 57 166 165 193 93 202 201
    8 160 165 167 62 199 201 203 98
    8 165 166 63 167 201 202 99 203
    8 57 153 171 166 93 196 204 202
    8 153 58 172 171 196 94 205 204
    8 166 171 173 63 202 204 206 99
    8 171 172 64 173 204 205 100 206
    CELL_TYPES 104
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    12
    CELL_DATA 104
    SCALARS BlockID int
    LOOKUP_TABLE default
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    SCALARS Resistivity[Ohm-m] float
    LOOKUP_TABLE default
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    1e+10
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    100
    SCALARS ElemID int
    LOOKUP_TABLE default
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    SCALARS Level int
    LOOKUP_TABLE default
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    SCALARS Volume float
    LOOKUP_TABLE default
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    1.6
    1.6
    1.6
    1.6
    1.6
    1.6
    1.6
    1.6
    1.6
    1.6
    1.6
    1.6
    1.6
    1.6
    1.6
    1.6
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.1
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    0.4
    POINT_DATA 207
    SCALARS NodeID int
    LOOKUP_TABLE default
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206


    array in points.py:

    import numpy as np
    points = np.array([[-1.912e+03, -1.912e+03, -2.000e+02],
    [-1.912e+03, -1.912e+03, 8.000e+02],
    [-1.030e+03, -1.912e+03, -2.000e+02],
    [-1.030e+03, -1.912e+03, 8.000e+02],
    [-5.890e+02, -1.912e+03, -2.000e+02],
    [-5.890e+02, -1.912e+03, 8.000e+02],
    [-2.950e+02, -1.912e+03, -2.000e+02],
    [-2.950e+02, -1.912e+03, 8.000e+02],
    [-1.000e+00, -1.912e+03, -2.000e+02],
    [-1.000e+00, -1.912e+03, 8.000e+02],
    [ 2.930e+02, -1.912e+03, -2.000e+02],
    [ 2.930e+02, -1.912e+03, 8.000e+02],
    [ 5.870e+02, -1.912e+03, -2.000e+02],
    [ 5.870e+02, -1.912e+03, 8.000e+02],
    [ 1.028e+03, -1.912e+03, -2.000e+02],
    [ 1.028e+03, -1.912e+03, 8.000e+02],
    [ 1.910e+03, -1.912e+03, -2.000e+02],
    [ 1.910e+03, -1.912e+03, 8.000e+02],
    [-1.912e+03, -1.030e+03, -2.000e+02],
    [-1.912e+03, -1.030e+03, 8.000e+02],
    [-1.030e+03, -1.030e+03, -2.000e+02],
    [-1.030e+03, -1.030e+03, 8.000e+02],
    [-5.890e+02, -1.030e+03, -2.000e+02],
    [-5.890e+02, -1.030e+03, 8.000e+02],
    [-2.950e+02, -1.030e+03, -2.000e+02],
    [-2.950e+02, -1.030e+03, 8.000e+02],
    [-1.000e+00, -1.030e+03, -2.000e+02],
    [-1.000e+00, -1.030e+03, 8.000e+02],
    [ 2.930e+02, -1.030e+03, -2.000e+02],
    [ 2.930e+02, -1.030e+03, 8.000e+02],
    [ 5.870e+02, -1.030e+03, -2.000e+02],
    [ 5.870e+02, -1.030e+03, 8.000e+02],
    [ 1.028e+03, -1.030e+03, -2.000e+02],
    [ 1.028e+03, -1.030e+03, 8.000e+02],
    [ 1.910e+03, -1.030e+03, -2.000e+02],
    [ 1.910e+03, -1.030e+03, 8.000e+02],
    [-1.912e+03, -5.890e+02, -2.000e+02],
    [-1.912e+03, -5.890e+02, 8.000e+02],
    [-1.030e+03, -5.890e+02, -2.000e+02],
    [-1.030e+03, -5.890e+02, 8.000e+02],
    [-5.890e+02, -5.890e+02, -2.000e+02],
    [-5.890e+02, -5.890e+02, 8.000e+02],
    [-2.950e+02, -5.890e+02, -2.000e+02],
    [-2.950e+02, -5.890e+02, 8.000e+02],
    [-1.000e+00, -5.890e+02, -2.000e+02],
    [-1.000e+00, -5.890e+02, 8.000e+02],
    [ 2.930e+02, -5.890e+02, -2.000e+02],
    [ 2.930e+02, -5.890e+02, 8.000e+02],
    [ 5.870e+02, -5.890e+02, -2.000e+02],
    [ 5.870e+02, -5.890e+02, 8.000e+02],
    [ 1.028e+03, -5.890e+02, -2.000e+02],
    [ 1.028e+03, -5.890e+02, 8.000e+02],
    [ 1.910e+03, -5.890e+02, -2.000e+02],
    [ 1.910e+03, -5.890e+02, 8.000e+02],
    [-1.912e+03, -2.950e+02, -2.000e+02],
    [-1.912e+03, -2.950e+02, 8.000e+02],
    [-1.030e+03, -2.950e+02, -2.000e+02],
    [-1.030e+03, -2.950e+02, 8.000e+02],
    [-5.890e+02, -2.950e+02, -2.000e+02],
    [-5.890e+02, -2.950e+02, 8.000e+02],
    [-2.950e+02, -2.950e+02, -2.000e+02],
    [-2.950e+02, -2.950e+02, 8.000e+02],
    [-1.000e+00, -2.950e+02, -2.000e+02],
    [-1.000e+00, -2.950e+02, 8.000e+02],
    [ 2.930e+02, -2.950e+02, -2.000e+02],
    [ 2.930e+02, -2.950e+02, 8.000e+02],
    [ 5.870e+02, -2.950e+02, -2.000e+02],
    [ 5.870e+02, -2.950e+02, 8.000e+02],
    [ 1.028e+03, -2.950e+02, -2.000e+02],
    [ 1.028e+03, -2.950e+02, 8.000e+02],
    [ 1.910e+03, -2.950e+02, -2.000e+02],
    [ 1.910e+03, -2.950e+02, 8.000e+02],
    [-1.912e+03, -1.000e+00, -2.000e+02],
    [-1.912e+03, -1.000e+00, 8.000e+02],
    [-1.030e+03, -1.000e+00, -2.000e+02],
    [-1.030e+03, -1.000e+00, 8.000e+02],
    [-5.890e+02, -1.000e+00, -2.000e+02],
    [-5.890e+02, -1.000e+00, 8.000e+02],
    [-2.950e+02, -1.000e+00, -2.000e+02],
    [-2.950e+02, -1.000e+00, 8.000e+02],
    [-1.000e+00, -1.000e+00, -2.000e+02],
    [-1.000e+00, -1.000e+00, 8.000e+02],
    [ 2.930e+02, -1.000e+00, -2.000e+02],
    [ 2.930e+02, -1.000e+00, 8.000e+02],
    [ 5.870e+02, -1.000e+00, -2.000e+02],
    [ 5.870e+02, -1.000e+00, 8.000e+02],
    [ 1.028e+03, -1.000e+00, -2.000e+02],
    [ 1.028e+03, -1.000e+00, 8.000e+02],
    [ 1.910e+03, -1.000e+00, -2.000e+02],
    [ 1.910e+03, -1.000e+00, 8.000e+02],
    [-1.912e+03, 2.930e+02, -2.000e+02],
    [-1.912e+03, 2.930e+02, 8.000e+02],
    [-1.030e+03, 2.930e+02, -2.000e+02],
    [-1.030e+03, 2.930e+02, 8.000e+02],
    [-5.890e+02, 2.930e+02, -2.000e+02],
    [-5.890e+02, 2.930e+02, 8.000e+02],
    [-2.950e+02, 2.930e+02, -2.000e+02],
    [-2.950e+02, 2.930e+02, 8.000e+02],
    [-1.000e+00, 2.930e+02, -2.000e+02],
    [-1.000e+00, 2.930e+02, 8.000e+02],
    [ 2.930e+02, 2.930e+02, -2.000e+02],
    [ 2.930e+02, 2.930e+02, 8.000e+02],
    [ 5.870e+02, 2.930e+02, -2.000e+02],
    [ 5.870e+02, 2.930e+02, 8.000e+02],
    [ 1.028e+03, 2.930e+02, -2.000e+02],
    [ 1.028e+03, 2.930e+02, 8.000e+02],
    [ 1.910e+03, 2.930e+02, -2.000e+02],
    [ 1.910e+03, 2.930e+02, 8.000e+02],
    [-1.912e+03, 5.870e+02, -2.000e+02],
    [-1.912e+03, 5.870e+02, 8.000e+02],
    [-1.030e+03, 5.870e+02, -2.000e+02],
    [-1.030e+03, 5.870e+02, 8.000e+02],
    [-5.890e+02, 5.870e+02, -2.000e+02],
    [-5.890e+02, 5.870e+02, 8.000e+02],
    [-2.950e+02, 5.870e+02, -2.000e+02],
    [-2.950e+02, 5.870e+02, 8.000e+02],
    [-1.000e+00, 5.870e+02, -2.000e+02],
    [-1.000e+00, 5.870e+02, 8.000e+02],
    [ 2.930e+02, 5.870e+02, -2.000e+02],
    [ 2.930e+02, 5.870e+02, 8.000e+02],
    [ 5.870e+02, 5.870e+02, -2.000e+02],
    [ 5.870e+02, 5.870e+02, 8.000e+02],
    [ 1.028e+03, 5.870e+02, -2.000e+02],
    [ 1.028e+03, 5.870e+02, 8.000e+02],
    [ 1.910e+03, 5.870e+02, -2.000e+02],
    [ 1.910e+03, 5.870e+02, 8.000e+02],
    [-1.912e+03, 1.028e+03, -2.000e+02],
    [-1.912e+03, 1.028e+03, 8.000e+02],
    [-1.030e+03, 1.028e+03, -2.000e+02],
    [-1.030e+03, 1.028e+03, 8.000e+02],
    [-5.890e+02, 1.028e+03, -2.000e+02],
    [-5.890e+02, 1.028e+03, 8.000e+02],
    [-2.950e+02, 1.028e+03, -2.000e+02],
    [-2.950e+02, 1.028e+03, 8.000e+02],
    [-1.000e+00, 1.028e+03, -2.000e+02],
    [-1.000e+00, 1.028e+03, 8.000e+02],
    [ 2.930e+02, 1.028e+03, -2.000e+02],
    [ 2.930e+02, 1.028e+03, 8.000e+02],
    [ 5.870e+02, 1.028e+03, -2.000e+02],
    [ 5.870e+02, 1.028e+03, 8.000e+02],
    [ 1.028e+03, 1.028e+03, -2.000e+02],
    [ 1.028e+03, 1.028e+03, 8.000e+02],
    [ 1.910e+03, 1.028e+03, -2.000e+02],
    [ 1.910e+03, 1.028e+03, 8.000e+02],
    [-1.912e+03, 1.910e+03, -2.000e+02],
    [-1.912e+03, 1.910e+03, 8.000e+02],
    [-1.030e+03, 1.910e+03, -2.000e+02],
    [-1.030e+03, 1.910e+03, 8.000e+02],
    [-5.890e+02, 1.910e+03, -2.000e+02],
    [-5.890e+02, 1.910e+03, 8.000e+02],
    [-2.950e+02, 1.910e+03, -2.000e+02],
    [-2.950e+02, 1.910e+03, 8.000e+02],
    [-1.000e+00, 1.910e+03, -2.000e+02],
    [-1.000e+00, 1.910e+03, 8.000e+02],
    [ 2.930e+02, 1.910e+03, -2.000e+02],
    [ 2.930e+02, 1.910e+03, 8.000e+02],
    [ 5.870e+02, 1.910e+03, -2.000e+02],
    [ 5.870e+02, 1.910e+03, 8.000e+02],
    [ 1.028e+03, 1.910e+03, -2.000e+02],
    [ 1.028e+03, 1.910e+03, 8.000e+02],
    [ 1.910e+03, 1.910e+03, -2.000e+02],
    [ 1.910e+03, 1.910e+03, 8.000e+02]])


    Example code:

    import pyvista as pv
    import numpy as np

    from points import points

    mesh = pv.read("mesh.vtk")
    mesh.set_active_scalars('Resistivity[Ohm-m]')

    pointset = pv.PointSet(points)
    pointset_sample = pointset.sample(mesh)
    print(pointset_sample.point_data['vtkValidPointMask'])

    plot = pv.Plotter()
    plot.add_mesh(pointset_sample, scalars = 'Resistivity[Ohm-m]', cmap = 'turbo_r',
    render_points_as_spheres=True, point_size=20,
    log_scale=True, clim=[5e0, 5e2])
    plot.add_mesh(mesh, scalars = 'Resistivity[Ohm-m]', cmap = 'turbo_r',
    opacity=0.3, show_edges=True, line_width=2, edge_opacity=1.0,
    log_scale=True, clim=[5e0, 5e2])
    plot.show()


    This results in this plot, where the 12 points that are missed in this example are on the red end of the color ramp, while all others are in agreement with the cells that contain them and are either green or purple, and a vtkValidPointMask of:

    [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]

    What is causing some points to fail sampling an enclosing mesh? How do I prevent points from failing to sample an enclosing mesh?

    Continue reading...

Compartilhe esta Página