Skip to content

[BUG] Notebook examples - AttributeError: 'NoneType' object has no attribute 'copy' #264

Description

@gpirot

Describe your issue

Working with LoopStructural v1.6.16, I get the AttributeError: 'NoneType' object has no attribute 'copy'

when running the provided example notebook (3b. Modelling a fault network in LoopStructural)

Minimal reproducing code example

https://loop3d.org/LoopStructural/_auto_examples/3_fault/fault_network.html

Error message

WARNING: 2025-08-01 10:22:18,254: process_data.py:136 -- No stratigraphic order provided
WARNING: 2025-08-01 10:22:18,279: process_data.py:361 -- Fault displacement not provided, setting to 0. This will result in only a fault surface, no displacement on older features
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[5], line 10
1 processor = ProcessInputData(
2 fault_orientations=ori,
3 fault_locations=df,
(...)
7 fault_edge_properties=[{"angle": 10}],
8 )
---> 10 model = GeologicalModel.from_processor(processor)
11 model.update()
13 view = Loop3DView(model)
File ~\Anaconda3\envs\loop2025\lib\site-packages\LoopStructural\modelling\core\geological_model.py:238, in GeologicalModel.from_processor(cls, processor)
236 logger.info("Creating model from processor")
237 model = GeologicalModel(processor.origin, processor.maximum)
--> 238 model.data = processor.data
239 if processor.fault_properties is not None:
240 foriin processor.fault_network.faults:
File ~\Anaconda3\envs\loop2025\lib\site-packages\LoopStructural\modelling\input\process_data.py:401, in ProcessInputData.data(self)
397 """This is the main function that does all the work, should be called 398 before any of the calculated attributes are accessed 399 """
400 dataframes = []
--> 401 if self.contacts is not None:
402 dataframes.append(self.contacts)
403 if self.contact_orientations is not None:
File ~\Anaconda3\envs\loop2025\lib\site-packages\LoopStructural\modelling\input\process_data.py:489, in ProcessInputData.contacts(self)
487 @property
488 def contacts(self):
--> 489 contacts = self._contacts.copy()
490 if self._use_thickness:
491 contacts["val"] = np.nan
AttributeError: 'NoneType' object has no attribute 'copy'

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions