# your code goes here
from numba import cuda
import numpy as np
import math
data = np.load ( 'example_data.npy' )
def ridge_detection( f, thres) :
count = np.zeros ( f.shape )
for i in range ( len ( f) ) :
for j in range ( len ( f[ i] ) ) :
if (
i > 0
and j > 0
and i < ( len ( f) - 1 )
and j < ( len ( f[ i] ) - 1 )
and f[ i, j] > thres
and ~ np.isnan ( f[ i, j] )
) :
step_i = i
step_j = j
for k in range ( 1000 ) :
if (
step_i == 0
or step_j == 0
or step_i == ( len ( f) - 1 )
or step_j == ( len ( f[ i] ) - 1 )
) :
break
index = np.nanargmax (
f[ step_i - 1 : step_i + 2 , step_j - 1 : step_j + 2 ] .data
)
vmax = np.nanmax (
f[ step_i - 1 : step_i + 2 , step_j - 1 : step_j + 2 ] .data
)
if index == 4 or vmax == f[ step_i, step_j] or np.isnan ( vmax) :
break
row = int ( index / 3 )
col = index % 3
count[ step_i - 1 + row, step_j - 1 + col] += 1
step_i = step_i - 1 + row
step_j = step_j - 1 + col
%%time
results = ridge_detection( data, 0 )
return count
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCmZyb20gbnVtYmEgaW1wb3J0IGN1ZGEKaW1wb3J0IG51bXB5IGFzIG5wCmltcG9ydCBtYXRoCmRhdGEgPSBucC5sb2FkKCdleGFtcGxlX2RhdGEubnB5JykKZGVmIHJpZGdlX2RldGVjdGlvbihmLCB0aHJlcyk6CiAgICBjb3VudCA9IG5wLnplcm9zKGYuc2hhcGUpCiAgICBmb3IgaSBpbiByYW5nZShsZW4oZikpOgogICAgICAgIGZvciBqIGluIHJhbmdlKGxlbihmW2ldKSk6CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgIGkgPiAwCiAgICAgICAgICAgICAgICBhbmQgaiA+IDAKICAgICAgICAgICAgICAgIGFuZCBpIDwgKGxlbihmKSAtIDEpCiAgICAgICAgICAgICAgICBhbmQgaiA8IChsZW4oZltpXSkgLSAxKQogICAgICAgICAgICAgICAgYW5kIGZbaSwgal0gPiB0aHJlcwogICAgICAgICAgICAgICAgYW5kIH5ucC5pc25hbihmW2ksIGpdKQogICAgICAgICAgICApOgogICAgICAgICAgICAgICAgc3RlcF9pID0gaQogICAgICAgICAgICAgICAgc3RlcF9qID0gagogICAgICAgICAgICAgICAgZm9yIGsgaW4gcmFuZ2UoMTAwMCk6CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICBzdGVwX2kgPT0gMAogICAgICAgICAgICAgICAgICAgICAgICBvciBzdGVwX2ogPT0gMAogICAgICAgICAgICAgICAgICAgICAgICBvciBzdGVwX2kgPT0gKGxlbihmKSAtIDEpCiAgICAgICAgICAgICAgICAgICAgICAgIG9yIHN0ZXBfaiA9PSAobGVuKGZbaV0pIC0gMSkKICAgICAgICAgICAgICAgICAgICApOgogICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgICAgIGluZGV4ID0gbnAubmFuYXJnbWF4KAogICAgICAgICAgICAgICAgICAgICAgICBmW3N0ZXBfaSAtIDEgOiBzdGVwX2kgKyAyLCBzdGVwX2ogLSAxIDogc3RlcF9qICsgMl0uZGF0YQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB2bWF4ID0gbnAubmFubWF4KAogICAgICAgICAgICAgICAgICAgICAgICBmW3N0ZXBfaSAtIDEgOiBzdGVwX2kgKyAyLCBzdGVwX2ogLSAxIDogc3RlcF9qICsgMl0uZGF0YQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBpZiBpbmRleCA9PSA0IG9yIHZtYXggPT0gZltzdGVwX2ksIHN0ZXBfal0gb3IgbnAuaXNuYW4odm1heCk6CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgICAgcm93ID0gaW50KGluZGV4IC8gMykKICAgICAgICAgICAgICAgICAgICBjb2wgPSBpbmRleCAlIDMKICAgICAgICAgICAgICAgICAgICBjb3VudFtzdGVwX2kgLSAxICsgcm93LCBzdGVwX2ogLSAxICsgY29sXSArPSAxCiAgICAgICAgICAgICAgICAgICAgc3RlcF9pID0gc3RlcF9pIC0gMSArIHJvdwogICAgICAgICAgICAgICAgICAgIHN0ZXBfaiA9IHN0ZXBfaiAtIDEgKyBjb2wKICAgICAgICAgICAgICAgICAgICAlJXRpbWUKcmVzdWx0cyA9IHJpZGdlX2RldGVjdGlvbihkYXRhLCAwKQogICAgcmV0dXJuIGNvdW50
compilation info
Traceback (most recent call last):
File "/usr/lib/python3.9/py_compile.py", line 144, in compile
code = loader.source_to_code(source_bytes, dfile or file,
File "<frozen importlib._bootstrap_external>", line 918, in source_to_code
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "./prog.py", line 41
%%time
^
SyntaxError: invalid syntax
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python3.9/py_compile.py", line 150, in compile
raise py_exc
py_compile.PyCompileError: File "./prog.py", line 41
%%time
^
SyntaxError: invalid syntax
stdout