Skip to content

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

@gpirot

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     for i in 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