LoopStructural icon indicating copy to clipboard operation
LoopStructural copied to clipboard

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

Open gpirot opened this issue 5 months ago • 0 comments

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'

gpirot avatar Aug 01 '25 03:08 gpirot